답안 #33072

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
33072 2017-10-19T22:44:32 Z trath Cezar (COCI16_cezar) C++
0 / 100
0 ms 2180 KB
#include <bits/stdc++.h>
using namespace std;
#define F first
#define S second
#define mp make_pair
#define pb push_back
#define ieps (int) 1e6
#define eps (int) 1e9
#define pii pair<int,int>
// Introduction et Rondo Capriccioso :)
vector<char> adj[27];
int sz[27];
int32_t main(){
	ios_base::sync_with_stdio(false);
	int n;
	cin>>n;
	vector<string> s(n);
	for(int i = 0;i<n;i++) cin>>s[i];
	vector<int> ord(n);
	for(int i = 0;i<n;i++) cin>>ord[i];
	for(int i = 0;i<n - 1;i++){
		string f = s[ord[i] - 1] ,  t = s[ord[i+1] - 1];
		int mismatch = -1;
		for(int i = 0; i<min(f.size() , t.size()) ; i++){
			if(f[i] != t[i]){
				mismatch = i;
				break;
			}
		}
		//cout<<mismatch<<endl;
		if(mismatch == -1 && f.size() != t.size()){
			if(f.size() < t.size()) continue;
			cout<<"NE"<<endl;
			return 0;
		}
		else{
			adj[f[mismatch] - 'a'].pb(t[mismatch] - 'a');
			//cout<<f[mismatch]<<" "<<t[mismatch]<<endl;
			sz[t[mismatch] - 'a']++;
		}
	}
	string ans;
	queue<int> q;
	for(int i = 0;i<26;i++){
		if(sz[i] == 0) q.push(i);
	}
	while(!q.empty()){
		ans += q.front() + 'a';
		int u = q.front();
		q.pop();
		for(int i = 0;i<adj[u].size();i++){
			int v = adj[u][i];
			//cout<<v<<endl;
			sz[v]--;
			if(sz[v] == 0) q.push(v);
		}
	}
	//cout<<ans<<endl;
	if(ans.size() == 26){
		cout<<"DE"<<endl<<ans<<endl;
	}
	else{
		cout<<"NE"<<endl;
	}
}

Compilation message

cezar.cpp: In function 'int32_t main()':
cezar.cpp:24:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i = 0; i<min(f.size() , t.size()) ; i++){
                   ^
cezar.cpp:51:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i = 0;i<adj[u].size();i++){
                  ^
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 2180 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 2180 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 2180 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 2180 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 2180 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 2180 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 2180 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 2180 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 2180 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 2180 KB Output isn't correct
2 Halted 0 ms 0 KB -