Submission #1239252

#TimeUsernameProblemLanguageResultExecution timeMemory
1239252moondarksideToy Train (IOI17_train)C++20
Compilation error
0 ms0 KiB
#include<bits/stdc++.h>
using namespace std;



std::vector<int> who_wins(std::vector<int> a, std::vector<int> r, std::vector<int> u, std::vector<int> v) {
	
	vector<vector<int>> Next(a.size());
    
    int n=a.size();

    for(int i=0; i<u.size(); i++) {
		Next[u[i]].push_back(v[i]);
	}
    std::vector<int> rC=r;
    for(int sur=0;sur<n;sur++){
        vector<int> prC=rC;
	    rC=r;
        
        bool cambio=true;
        for(int ronda=0; ronda<n && cambio; ronda++) {
        cambio=false;
		for(int i=0; i<n; i++) {
			if(rC[i]!=1) {
				if(a[i]==1) {
					for(int j=0; j<Next[i].size(); j++) {
						if(rC[Next[i][j]]==1) {
							rC[i]=1;
							cambio=true;
						}

					}

				}
				else {
				 	int ns=1;
					for(int j=0; j<Next[i].size(); j++) {
						ns=ns*rC[Next[i][j]];

					}
					rC[i]=ns;
					if(ns==1){
					    cambio=true;
					}
				}
			}

		}

	}
	
	cambio=true;
	
	for(int ronda=0; ronda<n && cambio; ronda++) {
        cambio=false;
		for(int i=0; i<n; i++) {
			if(rC[i]==1) {
				if(a[i]==0) {
					for(int j=0; j<Next[i].size(); j++) {
						if(rC[Next[i][j]]==0) {
							rC[i]=0;
							cambio=true;
						}

					}

				}
				else {
					int ns=1;
					for(int j=0; j<Next[i].size(); j++) {
						ns=ns*(1-rC[Next[i][j]]);

					}
					rC[i]=1-ns;
					if(ns==1){
					    cambio=true;
					}
				}
			}

		}

	}
        
    bool change=true;
    for(int i=0;i<n;i++){
        r[i]=r[i] && rC[i];
        if(prC[i]==rC[i]){
            change=false;
        }
        
    }    
    
    if(change){
        vector<int> Sol;
	for(int i=0;i<n;i++){
	    Sol.push_back(rC[i]);
	}
	return Sol;
    }
    
    
    }
	
	vector<int> Sol;
	for(int i=0;i<n;i++){
	    Sol.push_back(rC[i]);
	}
	return Sol;
}


int main()
{
	vector<int> A=who_wins((vector<int>) {
		1,1,1
	}, (vector<int>) {
		0,1,0
	}, (vector<int>) {
		0,0,1,2
	}, (vector<int>) {
		0,1,2,2
	});
	for(int i=0; i<A.size(); i++) {
		cout<<A[i]<<"\n";
	}

}

Compilation message (stderr)

/usr/bin/ld: /tmp/ccVdfZ1L.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/cci2VU6s.o:train.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status