Submission #538760
Source Code Expand
#include <algorithm>
#include <cstdio>
#include <iostream>
#include <string>
using namespace std;
bool eq(string s, int a){
char tmp[10];
int p=a;
int size=0;
while(p!=0){
p/=10;
size++;
}
p=a;
tmp[size]='\0';
while(p!=0){
tmp[size-1]=(p%10)+'0';
size--;
p/=10;
}
string z;
z=tmp;
int ret=z.compare(s);
return (ret==0);
}
int main(){
int n, a;
string k;
int b[100001];
//input
cin >> n >> a;
cin >> k;
for(int i=1; i<=n; ++i) scanf(" %d", &b[i]);
//solve
bool visit[100001];
fill(visit, visit+n+1, false);
//for(int i=0; i<=n+1; ++i) cout << visit[i] << endl;
int place[100000]={0};
int step=0;
int pt=a;
visit[a]=true;
place[0]=a;
//find loop
while(1){
//printf("now here: %d\n", pt);
if(eq(k,step+1)) break;
pt=b[pt];
place[++step]=pt;
if(visit[pt]) break;
visit[pt]=true;
}
//printf("step=%d, pt=%d\n",step, pt);
if(eq(k,step+1)) printf("%d\n", b[pt]);
else{ //loop found
//for(int i=0; i<=step; ++i) printf("place[%d]=%d\n", i, place[i]);
int start=0;
while(place[start]!=pt) start++;
//printf("find : start = %d\n", start);
//printf("->loop_size=%d\n", step-start);
int C=step-start;
int k_mod_C=0;
for(int i=0; i<k.size(); ++i){
k_mod_C = (k_mod_C*10+k[i]-'0')%C;
}
int ad=0;
while(ad<n) ad+=C;
k_mod_C = (k_mod_C+ad-start)%C;
//printf("k_mod_C = %d\n", k_mod_C);
printf("%d\n", place[start+k_mod_C]);
}
}
Submission Info
Submission Time |
|
Task |
D - へんてこ辞書 |
User |
imulan |
Language |
C++ (GCC 4.9.2) |
Score |
100 |
Code Size |
1532 Byte |
Status |
AC |
Exec Time |
52 ms |
Memory |
1956 KB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:39:45: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
for(int i=1; i<=n; ++i) scanf(" %d", &b[i]);
^
Judge Result
Set Name |
Sample |
Subtask1 |
All |
Score / Max Score |
0 / 0 |
50 / 50 |
50 / 50 |
Status |
|
|
|
Set Name |
Test Cases |
Sample |
subtask0_sample_01.txt, subtask0_sample_03.txt |
Subtask1 |
subtask0_0.txt, subtask0_1.txt, subtask0_2.txt, subtask0_3.txt, subtask0_4.txt, subtask0_5.txt, subtask0_6.txt, subtask0_7.txt, subtask0_8.txt, subtask0_9.txt, subtask0_sample_01.txt, subtask0_sample_03.txt |
All |
subtask0_0.txt, subtask0_1.txt, subtask0_2.txt, subtask0_3.txt, subtask0_4.txt, subtask0_5.txt, subtask0_6.txt, subtask0_7.txt, subtask0_8.txt, subtask0_9.txt, subtask0_sample_01.txt, subtask0_sample_03.txt, subtask1_0.txt, subtask1_1.txt, subtask1_10.txt, subtask1_11.txt, subtask1_2.txt, subtask1_3.txt, subtask1_4.txt, subtask1_5.txt, subtask1_6.txt, subtask1_7.txt, subtask1_8.txt, subtask1_9.txt, subtask1_sample_02.txt |
Case Name |
Status |
Exec Time |
Memory |
subtask0_0.txt |
AC |
52 ms |
1692 KB |
subtask0_1.txt |
AC |
41 ms |
1568 KB |
subtask0_2.txt |
AC |
42 ms |
1628 KB |
subtask0_3.txt |
AC |
39 ms |
1496 KB |
subtask0_4.txt |
AC |
44 ms |
1620 KB |
subtask0_5.txt |
AC |
44 ms |
1500 KB |
subtask0_6.txt |
AC |
41 ms |
1568 KB |
subtask0_7.txt |
AC |
43 ms |
1572 KB |
subtask0_8.txt |
AC |
38 ms |
1496 KB |
subtask0_9.txt |
AC |
44 ms |
1644 KB |
subtask0_sample_01.txt |
AC |
28 ms |
1176 KB |
subtask0_sample_03.txt |
AC |
29 ms |
1184 KB |
subtask1_0.txt |
AC |
45 ms |
1824 KB |
subtask1_1.txt |
AC |
48 ms |
1760 KB |
subtask1_10.txt |
AC |
52 ms |
1884 KB |
subtask1_11.txt |
AC |
29 ms |
1316 KB |
subtask1_2.txt |
AC |
48 ms |
1632 KB |
subtask1_3.txt |
AC |
41 ms |
1704 KB |
subtask1_4.txt |
AC |
42 ms |
1572 KB |
subtask1_5.txt |
AC |
48 ms |
1756 KB |
subtask1_6.txt |
AC |
45 ms |
1628 KB |
subtask1_7.txt |
AC |
45 ms |
1636 KB |
subtask1_8.txt |
AC |
48 ms |
1752 KB |
subtask1_9.txt |
AC |
49 ms |
1956 KB |
subtask1_sample_02.txt |
AC |
28 ms |
1304 KB |