http://codeforces.com/contest/401
A:水题
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<stack>
#include<vector>
#include<map>
#include<set>
#include<bitset>
#define ll __int64
using namespace std;
int main()
{
int i,j,k,x;
int n,m,t;
//freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);
//scanf("%d",&t);for(int tcase=1;tcase<=t;tcase++)
while(scanf("%d%d",&n,&x)!=EOF)
{
int sum=0;
while(n--)
{
scanf("%d",&i);
sum+=i;
}
if(sum<0) sum=-sum;
if(sum%x==0)
{
printf("%d\n",sum/x);
}
else
{
printf("%d\n",sum/x+1);
}
}
}
B:简单题
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<stack>
#include<vector>
#include<map>
#include<set>
#include<bitset>
#define ll __int64
using namespace std;
int a[5000];
int main()
{
int i,j,k;
int n,m,t;
//freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);
//scanf("%d",&t);for(int tcase=1;tcase<=t;tcase++)
while(scanf("%d%d",&n,&k)!=EOF)
{
memset(a,0,sizeof(a));
while(k--)
{
scanf("%d",&j);
if(j==2)
{
scanf("%d",&i);
a[i]=1;
}
else
{
scanf("%d%d",&i,&j);
a[i]=1;
a[j]=1;
}
}
int mmax=0,mmin=0;
int con=0;
for(i=1;i<n;i++)
{
if(a[i]==0)
{
mmax++;
}
}
for(i=1;i<n;i++)
{
if(a[i]==0)
{
con++;
}
else
{
mmin+=(con+1)/2;
con=0;
}
}
if(con>0)
{
mmin+=(con+1)/2;
}
printf("%d %d\n",mmin,mmax);
}
}
C:模拟题,告诉你有n个0,m个1, 0不能2个连续,1不能3个连续,输出可能串
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<stack>
#include<vector>
#include<map>
#include<set>
#include<bitset>
#define ll __int64
using namespace std;
int main()
{
int i,j,k;
int n,m,t;
//freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);
//scanf("%d",&t);for(int tcase=1;tcase<=t;tcase++)
while(scanf("%d%d",&n,&m)!=EOF)
{
if(m>(n+1)*2||n>m+1)
{
printf("-1\n");
continue;
}
int left=m-n+1;
if(left==1)
{
printf("1");
left--;
}
else if(left>=2)
{
printf("11");
left-=2;
}
for(i=1;i<n;i++)
{
printf("01");
if(left>0)
{
printf("1");
left--;
}
}
printf("0");
while(left>0)
{
printf("1");
left--;
}
printf("\n");
}
}