Why i am getting it WA. Actually I am confused about considering the submission. That means which will not bring the team in the ranking??
Plz help me.........Thank u in advance
Amit
Code: Select all
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
class contest
{
int id;
int prob_num;
int time;
int total_time;
int solved;
char ch;
bool status;
bool penalty_stat;
bool prob_stat[12];
int count;
bool stat;
int c;
public:
void init()
{
int i;
id=0;
prob_num=0;
time=0;
total_time=0;
solved=0;
status=false;
count=0;
stat=false;
c=0;
for(i=1;i<10;i++)
prob_stat[i]=false;
}
void entry(int z,int x,int y,char c);
void time_calcu();
int get_time();
int get_solved();
int penalty();
void print();
};
void contest:: entry(int z,int x,int y,char c )
{
id=z;
prob_num= x;
time=y;
ch=c;
}
void contest:: time_calcu()
{
if(ch=='C' )
{
if(prob_stat[prob_num]== false)
{
prob_stat[prob_num]=true;
total_time= total_time + time + c*20;
stat=true;
c=0;
solved++;
status=true;
penalty_stat=true;
}
}
else if( ch=='I')
{
if(prob_stat[prob_num] == false)
{
if(penalty_stat==true)
{
//if(stat==true)
total_time= total_time + 20;
}
else if(stat == false)
c++;
status=true;
}
}
else if( ch=='R')
{
status= true;
penalty_stat=false;
}
else if( ch=='E')
{
status= true;
penalty_stat=false;
}
else if( ch=='U')
{
status= true;
penalty_stat=false;
}
}
int contest::get_time()
{
return total_time;
}
int contest ::get_solved()
{
return solved;
}
void contest::print()
{
if(status==true)
printf("%d %d %d\n",id,solved,total_time);
}
int main()
{
contest s[105];
contest tmp;
char whole[50];
int i,num,j;
int team,prob,times;
char st,nwe;
int count=0;
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
scanf("%d",&num);
while(num!=0)
{
for(i=1;i<=100;i++)
s[i].init();
if(count==0)
{
scanf("%c%c",&nwe,&nwe);
count=1;
}
while(gets(whole)!=NULL)
{
if(strcmp(whole,"")==0)
break;
sscanf(whole,"%d %d %d %c",&team,&prob,×,&st);
s[team].entry(team,prob,times,st);
s[team].time_calcu();
}
for (i = 1; i < 100; i++)
for (j = 1; j < 100; j++)
if (s[j].get_solved() < s[j+1].get_solved())
{
tmp = s[j];
s[j] = s[j+1];
s[j+1] = tmp;
}
for (i = 1; i < 100; i++)
for (j = 1; j < 100; j++)
if ( ( s[j].get_solved()== s[j+1].get_solved() ) && ( s[j].get_time() > s[j+1].get_time() ) )
{
tmp = s[j];
s[j] = s[j+1];
s[j+1] = tmp;
}
for (i = 1; i <= 100; i++)
s[i].print();
if(num>1)
printf("\n");
num--;
}
return 0;
}