time limit per test 1 second
memory limit per test 256 megabytes
题目链接http://codeforces.com/problemset/problem/1102/A
题目大意:给你一个n,代表数列1-n。让你将其分为2段,其中两段的和的差最小,求最小的差。
要使得其差最小,我们很容易想到直接除以2平分就行了,思想没毛病,我们只需判断它能否到达总和/2就行了。
实际上打个表,找一下规律也很容易出来的:1-n总和的一半是为偶数:最小差=0;否则为1。
以下是AC代码:
#include <bits/stdc++.h>
using namespace std;
const int mac=3e5+10;
#define ll long long
int main()
{
int n;
scanf ("%d",&n);
ll sum=(ll)(1+n)*(ll)n/2;
if (sum%2) printf ("1\n");
else printf ("0\n");
return 0;
}