제출 #990764

#제출 시각아이디문제언어결과실행 시간메모리
990764vjudge1Dijamant (COI16_dijament)C++17
13 / 100
269 ms23128 KiB
#include <bits/stdc++.h>
using namespace std;

#define ll long long
int const N=1005;
int const mod=1e9+7;

map<string,bool> vis;
map<string,int> idx;
int cnt=1;
set<int> parent[N];
int main(){
	int n;
	cin>>n;
	string s;
	getline(cin,s);
	for(int i=0;i<n;i++){
		getline(cin,s);
		// cout<<s<<endl;
		vector<string> v;
		string t="";
		for(int i=0;i<s.length();i++){
			if(s[i]==' '){
				v.push_back(t);
				t="";
			}
			else
				t+=s[i];
		}
		v.push_back(t);
		if(vis[v[0]]){
			cout<<"greska"<<endl;
			continue;
		}
		bool b=1;
		for(int i=2;i<(v.size())-1;i++)
			if(vis[v[i]]==0)
				b=0;
		if(b==0){
			cout<<"greska"<<endl;
			continue;
		}
		//check diamond
		vector<int> pars;
		for(int i=2;i<(v.size())-1;i++)
			pars.push_back(idx[v[i]]);
		sort(pars.begin(), pars.end());
		reverse(pars.begin(), pars.end());
		// cout<<endl;
		b=1;
		set<int> p;
		for(auto id:pars){
			if(p.find(id)!=p.end())
				continue;
			for(auto x:parent[id]){
				if(p.find(x)!=p.end()){
					b=0;
					break;
				}
				p.insert(x);
			}
			if(b==0)
				break;
		}
		if(b==0){
			cout<<"greska"<<endl;
			continue;
		}
		for(auto i:pars)
			p.insert(i);
		for(auto i:p)
			cout<<i<<' ';
		cout<<endl;
		cout<<"ok"<<endl;
		vis[v[0]]=1;
		idx[v[0]]=cnt;
		parent[cnt]=p;
		cnt++;
	}
	return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

dijament.cpp: In function 'int main()':
dijament.cpp:22:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   22 |   for(int i=0;i<s.length();i++){
      |               ~^~~~~~~~~~~
dijament.cpp:36:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::__cxx11::basic_string<char> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   36 |   for(int i=2;i<(v.size())-1;i++)
      |               ~^~~~~~~~~~~~~
dijament.cpp:45:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::__cxx11::basic_string<char> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   45 |   for(int i=2;i<(v.size())-1;i++)
      |               ~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...