您的位置:首页 > 其它

Codeforces Round #182 (Div. 2)

2013-05-06 02:05 381 查看
//A  好久没做了,5.1一过寝室不熄灯了,今天做了一场还是只做了2题。 弱。
#include<iostream>
#include<stdio.h>
using namespace std;
int a[200005],b[200005];
int main()
{
// freopen("1.txt","r",stdin);
int n,m,numx=0,numy=0,x,y;
cin>>n>>m;
for(int i=0; i<n; i++)
{
cin>>a[i];
if(a[i]==1)
numx++;
else  numy++;
}
for(int j=0; j<m; j++)
{
cin>>x>>y;
if((y-x)%2!=0&&(y-x+1)<=2*min(numx,numy))     // 满足这个条件才输出1
cout<<1<<endl;
else
cout<<0<<endl;
}
return 0;
}

//B
#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
int v[100005],c[100005],t[100005],sum[100005];
int main()
{
//freopen("1.txt","r",stdin);
memset(sum,0,sizeof(sum));
int n,m;
cin>>n>>m;
cin>>c[0]>>t[0];
sum[0]=c[0]*t[0];
for(int i=1; i<n; i++)
{
cin>>c[i]>>t[i];
sum[i]=c[i]*t[i]+sum[i-1];
}
for(int j=0; j<m; j++)
cin>>v[j];
int k=0;
for(int j=0; j<m; j++)
for(int i=k; i<n; i++)  // 第一次TLE了,这里标记一下从上次的i开始节省了时间。
if(v[j]<=sum[i])
{
cout<<i+1<<endl;
k=i;
break;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: