Submission #1358931


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
typedef long long lint;
typedef pair<int, int> pi;
const int mod = 1e9 + 7;

int rev[1000005], sfx[1000005];
char str[1000005];
int n;

void solve(){
	scanf("%d",&n);
	for(int i=0; i<n; i++){
		scanf("%d",&sfx[i]);
sfx[i]--;
	}
	memset(str, 0, sizeof(str));
	rev[n] = -1;
	str[sfx[0]] = 'A';
	for(int i=1; i<n; i++){
		int p1 = sfx[i-1] + 1;
		int p2 = sfx[i] + 1;
		if(rev[p1] < rev[p2]){
			str[sfx[i]] = str[sfx[i-1]];
		}
		else{
			str[sfx[i]] = str[sfx[i-1]] + 1;
			if(str[sfx[i]] > 'Z'){
				puts("-1");
				return;
			}
		}
	}
	cout << str << endl;
}

Submission Info

Submission Time
Task D - suffix array
User koosaga
Language C++14 (GCC 5.4.1)
Score 0
Code Size 639 Byte
Status CE

Compile Error

./Main.cpp: In function ‘void solve()’:
./Main.cpp:12:16: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d",&n);
                ^
./Main.cpp:14:22: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d",&sfx[i]);
                      ^
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 0 has invalid symbol index 11
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 1 has invalid symbol index 12
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 2 has invalid symbol index 2
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 3 has invalid symbol index 2
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 4 has invalid symbol index 11
/usr/bin/ld: /usr/lib/debug/usr/lib/x...