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
AC × 2
AC × 12
AC × 25
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