![:(](./images/smilies/icon_frown.gif)
plz someone help.
here is my code:
Code: Select all
// code removed after AC!
Moderator: Board moderators
Code: Select all
// code removed after AC!
Code: Select all
1
10 11 Ja
5 Tan Sid Sam Sha Tan
1 Ja
1 Ja
1 Ja
1 Ja
Code: Select all
Case 1:
Ja 10
Sam 0
Sha 0
Sid 0
Tan 0
Code: Select all
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main()
{
int t,n,m,cost[5]={0},k[5],i,j,c=1;
string ar[5][20],name,save;
map<string,int> mymap;
map<string,int>::iterator it;
//Setting up mymap
mymap["Ja"]=0;
mymap["Sam"]=1;
mymap["Sha"]=2;
mymap["Sid"]=3;
mymap["Tan"]=4;
cin>>t;
while(t--){
for(i=0;i<5;i++) cost[i]=0;
cin>>m>>n>>name;
for(i=0;i<5;i++){
cin>>k[i];
for(j=0;j<k[i];j++){
cin>>ar[i][j];
}
}
cost[mymap[name]]+=m;
j=m+2;
while(j+m<n)
{
cost[mymap[ar[mymap[name]][0]]]+=m;
save=ar[mymap[name]][0]; //save first man
// Loop to shift first man to the last of the list
for(i=0;i<k[mymap[name]]-1;i++)
ar[mymap[name]][i]=ar[mymap[name]][i+1];
ar[mymap[name]][i+1]=save;
name=save; // Now he is to be analyzed next
j+=m;
n-=2; //reduce total time further by 2(swap time)
}
//add the remaining time if any to the last man's cost
if(n>=j)
cost[mymap[ar[mymap[name]][0]]]+=n-j;
//Output
cout<<"Case "<<c++<<": "<<endl;
for ( i=0,it=mymap.begin() ; it != mymap.end(); it++,i++ )
cout<<(*it).first<<" "<<cost[i]<<endl;
}
return 0;
}
sachin_midha wrote: for(i=0;i<k[mymap[name]]-1;i++)
ar[mymap[name]]=ar[mymap[name]][i+1];
ar[mymap[name]][i+1]=save;
Code: Select all
2
3 11 Ja
5 Tan Sid Sam Sha Tan
1 Ja
1 Ja
1 Ja
1 Ja
3 11 Ja
5 Tan Sid Sam Sha Tan
1 Ja
1 Ja
1 Ja
1 Ja
Code: Select all
AC
Try this:sachin_midha wrote:OMG...i forgot to reinitialize my cost array...![]()
Thnx a lot for finding out such a foolish mistake.![]()
(i've edited the code above)
But the problem still continues...Wrong Answer again![]()
I've read the code again & again but cant find out any other (such foolish) mistake...
Code: Select all
1
3 2 Ja
5 Tan Sid Sam Sha Tan
1 Ja
1 Ja
1 Ja
1 Ja
Code: Select all
Case 1:
Ja 2
Sam 0
Sha 0
Sid 0
Tan 0
What about i+1??ar[mymap[name]][i+1]=save;
Code: Select all
7
22 10 Sid
5 Tan Sid Sam Sha Tan
1 Ja
1 Ja
1 Ja
1 Ja
11 11 Ja
5 Tan Sid Sam Sha Tan
1 Ja
1 Ja
1 Ja
1 Ja
11 12 Sha
5 Tan Sid Sam Sha Tan
1 Ja
1 Ja
1 Ja
1 Ja
11 13 Sam
5 Tan Sid Sam Sha Tan
1 Ja
1 Ja
1 Ja
1 Ja
3 50 Sam
6 Sam Sha Tan Tan Tan Sid
5 Sha Sha Sid Tan Sha
2 Sam Ja
10 Ja Sam Ja Sam Ja Sam Ja Sam Sam Ja
4 Sid Sha Sam Ja
3 35 Sam
2 Sam Sha
2 Sha Sha
2 Sam Ja
1 Ja
2 Sid Sha
3 1000 Sam
6 Sam Sha Tan Tan Tan Sid
5 Sha Sha Sid Tan Sha
2 Sam Ja
10 Ja Sam Ja Sam Ja Sam Ja Sam Sam Ja
4 Sid Sha Sam Ja
Code: Select all
Case 1:
Ja 0
Sam 0
Sha 0
Sid 10
Tan 0
Case 2:
Ja 11
Sam 0
Sha 0
Sid 0
Tan 0
Case 3:
Ja 0
Sam 0
Sha 11
Sid 0
Tan 0
Case 4:
Ja 0
Sam 11
Sha 0
Sid 0
Tan 0
Case 5:
Ja 6
Sam 12
Sha 9
Sid 3
Tan 0
Case 6:
Ja 3
Sam 9
Sha 9
Sid 0
Tan 0
Case 7:
Ja 129
Sam 159
Sha 141
Sid 78
Tan 93
My program gives same output for case 1,2,3,4,6. But for case 5 and 7 my program gives wrong output. Its giving:v1n1t wrote:Here's some input / output that I found useful during testing / debugging.
Input:AC Output:Code: Select all
7 22 10 Sid 5 Tan Sid Sam Sha Tan 1 Ja 1 Ja 1 Ja 1 Ja 11 11 Ja 5 Tan Sid Sam Sha Tan 1 Ja 1 Ja 1 Ja 1 Ja 11 12 Sha 5 Tan Sid Sam Sha Tan 1 Ja 1 Ja 1 Ja 1 Ja 11 13 Sam 5 Tan Sid Sam Sha Tan 1 Ja 1 Ja 1 Ja 1 Ja 3 50 Sam 6 Sam Sha Tan Tan Tan Sid 5 Sha Sha Sid Tan Sha 2 Sam Ja 10 Ja Sam Ja Sam Ja Sam Ja Sam Sam Ja 4 Sid Sha Sam Ja 3 35 Sam 2 Sam Sha 2 Sha Sha 2 Sam Ja 1 Ja 2 Sid Sha 3 1000 Sam 6 Sam Sha Tan Tan Tan Sid 5 Sha Sha Sid Tan Sha 2 Sam Ja 10 Ja Sam Ja Sam Ja Sam Ja Sam Sam Ja 4 Sid Sha Sam Ja
Code: Select all
Case 1: Ja 0 Sam 0 Sha 0 Sid 10 Tan 0 Case 2: Ja 11 Sam 0 Sha 0 Sid 0 Tan 0 Case 3: Ja 0 Sam 0 Sha 11 Sid 0 Tan 0 Case 4: Ja 0 Sam 11 Sha 0 Sid 0 Tan 0 Case 5: Ja 6 Sam 12 Sha 9 Sid 3 Tan 0 Case 6: Ja 3 Sam 9 Sha 9 Sid 0 Tan 0 Case 7: Ja 129 Sam 159 Sha 141 Sid 78 Tan 93
Code: Select all
Case 5:
Ja 9
Sam 9
Sha 9
Sid 3
Tan 0
Case 7:
Ja 192
Sam 87
Sha 126
Sid 60
Tan 135
Code: Select all
#include <stdio.h>
#include <string.h>
struct lst
{
int listLen, time, serial[30];
char name[5];
char listname[25][5];
}SL[7];
int main()
{
int start, t, c, M, N, i, k, j, tmp;
char first[5];
strcpy(SL[1].name, "Ja");
strcpy(SL[2].name, "Sam");
strcpy(SL[3].name, "Sha");
strcpy(SL[4].name, "Sid");
strcpy(SL[5].name, "Tan");
scanf("%d",&t);
for(c=1;c<=t;c++)
{
scanf("%d %d %s", &M, &N, first);
for(i=1;i<=5;i++)
{
if(strcmp(first, SL[i].name)==0)
{
start=i;
break;
}
}
for(i=1;i<=5;i++)
SL[i].time=0;
for(i=1;i<=5;i++)
{
scanf("%d",&SL[i].listLen);
for(j=1;j<=SL[i].listLen;j++)
{
scanf("%s",SL[i].listname[j]);
for(k=1;k<=5;k++)
{
if(strcmp(SL[i].listname[j], SL[k].name)==0)
{
SL[i].serial[j]=k;
break;
}
}
}
}
i=start;
while(N>0)
{
if(N<=M)
{
SL[i].time+=N;
N=0;
}
else
{
SL[i].time+=M;
N-=(M+2);
start=SL[i].serial[1];
for(j=1;j<SL[i].listLen;j++)
{
SL[i].serial[j]=SL[i].serial[j+1];
}
SL[i].serial[j]=SL[i].serial[1];
i=start;
}
}
printf("Case %d:\n",c);
for(i=1;i<=5;i++)
printf("%s %d\n",SL[i].name, SL[i].time);
}
return 0;
}