| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
求救 : 为什么是Time Limit Exceeded??# include <stdio.h>
# include<string.h>
# include<stdlib.h>
int a[100001];
void paint(int x,int y,int k)
{
int i;
if (x>y) { i=x;x=y;y=i;};
for (i=x;i<=y;i++)
a[i]=k;
};
long count(int x,int y)
{
int find[31];
memset(find,0,sizeof(find));
long i,tot=0;
if (x>y) { i=x;x=y;y=i;};
for (i=x;i<=y;i++)
if(! find[a[i]]) {
tot++;
find[a[i]]=1;
}
return tot;
}
int main()
{
long t;
char c;
long i,j,k;
long L,K;
char s[10];
scanf("%ld %ld %ld\n",&L,&K,&t);
memset(a,0,sizeof(a));
//for (i=0;i<L;i++) a[i]=1;
while (t--){
scanf("%c",&c);
if(c=='C') {
scanf("%ld %ld %ld\n",&i,&j,&k);
paint(i,j,k-1);
}
else {
scanf("%ld %ld\n",&i,&j);
printf("%ld\n",count(i,j));
}
}/*
while (t--){
gets(s);
i=s[2]-'0';
j=s[4]-'0';
if (s[0]=='C') {
k=s[6]-'0';
paint(i,j,k);
}
else printf("%d\n",count(i,j));
}*/
system("pause");
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator