답안 #33075

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
33075 2017-10-19T23:07:25 Z trath Cezar (COCI16_cezar) C++
컴파일 오류
0 ms 0 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']++;
		}
	}
	int cnt = 0LL;
	char curr = 'a';
	string ans;
	for(int i = 0;i<26;i++) ans += ' ';
	queue<int> q;
	for(int i = 0;i<26;i++){
		if(sz[i] == 0) q.push(i);
	}
	while(!q.empty()){
		ans[q.front()] = curr++;
		int u = q.front();
		q.pop();
		cnt++;
		for(auto tt : adj[u]){
			sz[tt]--;
			if(sz[tt] == 0) q.push(tt);
		}
	}
	//cout<<ans<<endl;
	if(cnt== 26){
		cout<<"DA"<<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:55:7: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
   for(auto tt : adj[u]){
       ^
cezar.cpp:55:12: error: 'tt' does not name a type
   for(auto tt : adj[u]){
            ^
cezar.cpp:59:2: error: expected ';' before '}' token
  }
  ^
cezar.cpp:59:2: error: expected primary-expression before '}' token
cezar.cpp:59:2: error: expected ';' before '}' token
cezar.cpp:59:2: error: expected primary-expression before '}' token
cezar.cpp:59:2: error: expected ')' before '}' token
cezar.cpp:59:2: error: expected primary-expression before '}' token
cezar.cpp:52:7: warning: unused variable 'u' [-Wunused-variable]
   int u = q.front();
       ^