Submission #775974

# Submission time Handle Problem Language Result Execution time Memory
775974 2023-07-07T07:58:54 Z Amylopectin Toy Train (IOI17_train) C++14
15 / 100
2000 ms 1304 KB
#include "train.h"
#include <vector>
#include <algorithm>
#include <stdio.h>
 
using namespace std;
 
// const int mxn = 20;
const int mxn = 1e4 + 10;
vector<int> pat[mxn] = {},ans;
int batt[mxn] = {},who[mxn] = {},n,u[mxn] = {},res[mxn] = {},nba[mxn] = {};
int re(int cn,int cnba)
{
	int i,j,fn,of = 0;
	u[cn] = 1;
	nba[cn] = cnba;
	cnba += batt[cn];
	if(who[cn] == 1)
	{
		for(i=0; i<pat[cn].size(); i++)
		{
			fn = pat[cn][i];
			// if(u[fn] == 2)
			// {
			// 	if(res[fn] == 1)
			// 	{
			// 		of = 1;
			// 		break;
			// 	}
			// }
			// else if(u[fn] == 1)
            if(u[fn] == 1)
			{
				if(nba[fn] < cnba)
				{
					of = 1;
					break;
				}
			}
			else 
			{
				re(fn,cnba);
				if(res[fn] == 1)
				{
					of = 1;
					break;
				}
			}
		}
		if(of == 0)
		{
			res[cn] = 0;
		}
		else 
		{
			res[cn] = 1;
		}
	}
	else 
	{
		for(i=0; i<pat[cn].size(); i++)
		{
			fn = pat[cn][i];
			// if(u[fn] == 2)
			// {
			// 	if(res[fn] == 0)
			// 	{
			// 		of = 1;
			// 		break;
			// 	}
			// }
			// else if(u[fn] == 1)
            if(u[fn] == 1)
			{
				if(nba[fn] == cnba)
				{
					of = 1;
					break;
				}
			}
			else 
			{
				re(fn,cnba);
				if(res[fn] == 0)
				{
					of = 1;
					break;
				}
			}
		}
		if(of == 0)
		{
			res[cn] = 1;
		}
		else 
		{
			res[cn] = 0;
		}
	}
	u[cn] = 2;
	return 0;
}
std::vector<int> who_wins(std::vector<int> aa, std::vector<int> rr
, std::vector<int> uu, std::vector<int> vv) 
{
	int i,j,m = uu.size(),cn,cm,fn,fm;
	n = aa.size();
	for(i=0; i<n; i++)
	{
		who[i] = aa[i];
		batt[i] = rr[i];
	}
	for(i=0 ;i<m; i++)
	{
		pat[uu[i]].push_back(vv[i]);
	}
    // for(i=0; i<n; i++)
    // {
    //     if(batt[i] == 1)
    //     {
    //         re(i,0);
    //     }
    // }
    // for(i=0; i<n; i++)
    // {
    //     if(res[i] == 0 && u[i] == 2)
    //     {
    //         u[i] = 0;
    //     }
    // }
	for(i=0; i<n; i++)
	{
		for(j=0; j<n; j++)
		{
			u[j] = 0;
		}
        // if(u[i] == 0)
        // {
            re(i,0);
            ans.push_back(res[i]);
        // }
	}
    
    // for(i=0; i<n; i++)
    // {
    //     ans.push_back(res[i]);
    // }
    
	return ans;
	// std::vector<int> res(a.size());
	// for(int i = 0; i < (int)res.size(); i++)
	// 	res[i] = i % 2;
	// return res;
}

Compilation message

train.cpp: In function 'int re(int, int)':
train.cpp:20:13: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   20 |   for(i=0; i<pat[cn].size(); i++)
      |            ~^~~~~~~~~~~~~~~
train.cpp:61:13: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   61 |   for(i=0; i<pat[cn].size(); i++)
      |            ~^~~~~~~~~~~~~~~
train.cpp:14:8: warning: unused variable 'j' [-Wunused-variable]
   14 |  int i,j,fn,of = 0;
      |        ^
train.cpp: In function 'std::vector<int> who_wins(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
train.cpp:106:24: warning: unused variable 'cn' [-Wunused-variable]
  106 |  int i,j,m = uu.size(),cn,cm,fn,fm;
      |                        ^~
train.cpp:106:27: warning: unused variable 'cm' [-Wunused-variable]
  106 |  int i,j,m = uu.size(),cn,cm,fn,fm;
      |                           ^~
train.cpp:106:30: warning: unused variable 'fn' [-Wunused-variable]
  106 |  int i,j,m = uu.size(),cn,cm,fn,fm;
      |                              ^~
train.cpp:106:33: warning: unused variable 'fm' [-Wunused-variable]
  106 |  int i,j,m = uu.size(),cn,cm,fn,fm;
      |                                 ^~
# Verdict Execution time Memory Grader output
1 Correct 4 ms 980 KB Output is correct
2 Correct 6 ms 980 KB Output is correct
3 Correct 4 ms 1040 KB Output is correct
4 Correct 4 ms 980 KB Output is correct
5 Correct 4 ms 980 KB Output is correct
6 Correct 4 ms 984 KB Output is correct
7 Correct 4 ms 980 KB Output is correct
8 Correct 6 ms 1304 KB Output is correct
9 Correct 5 ms 980 KB Output is correct
10 Correct 4 ms 996 KB Output is correct
11 Correct 3 ms 980 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 468 KB Output is correct
2 Correct 1 ms 468 KB Output is correct
3 Correct 1 ms 468 KB Output is correct
4 Correct 1 ms 468 KB Output is correct
5 Correct 1 ms 468 KB Output is correct
6 Correct 1 ms 528 KB Output is correct
7 Correct 1 ms 468 KB Output is correct
8 Correct 0 ms 468 KB Output is correct
9 Correct 0 ms 468 KB Output is correct
10 Correct 1 ms 468 KB Output is correct
11 Correct 1 ms 468 KB Output is correct
12 Correct 1 ms 468 KB Output is correct
13 Correct 1 ms 532 KB Output is correct
14 Correct 0 ms 468 KB Output is correct
15 Correct 1 ms 468 KB Output is correct
16 Correct 0 ms 468 KB Output is correct
17 Correct 1 ms 468 KB Output is correct
18 Correct 0 ms 468 KB Output is correct
19 Correct 0 ms 468 KB Output is correct
20 Correct 0 ms 468 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 2058 ms 1252 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 2058 ms 1236 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 2070 ms 1272 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 4 ms 980 KB Output is correct
2 Correct 6 ms 980 KB Output is correct
3 Correct 4 ms 1040 KB Output is correct
4 Correct 4 ms 980 KB Output is correct
5 Correct 4 ms 980 KB Output is correct
6 Correct 4 ms 984 KB Output is correct
7 Correct 4 ms 980 KB Output is correct
8 Correct 6 ms 1304 KB Output is correct
9 Correct 5 ms 980 KB Output is correct
10 Correct 4 ms 996 KB Output is correct
11 Correct 3 ms 980 KB Output is correct
12 Correct 0 ms 468 KB Output is correct
13 Correct 1 ms 468 KB Output is correct
14 Correct 1 ms 468 KB Output is correct
15 Correct 1 ms 468 KB Output is correct
16 Correct 1 ms 468 KB Output is correct
17 Correct 1 ms 528 KB Output is correct
18 Correct 1 ms 468 KB Output is correct
19 Correct 0 ms 468 KB Output is correct
20 Correct 0 ms 468 KB Output is correct
21 Correct 1 ms 468 KB Output is correct
22 Correct 1 ms 468 KB Output is correct
23 Correct 1 ms 468 KB Output is correct
24 Correct 1 ms 532 KB Output is correct
25 Correct 0 ms 468 KB Output is correct
26 Correct 1 ms 468 KB Output is correct
27 Correct 0 ms 468 KB Output is correct
28 Correct 1 ms 468 KB Output is correct
29 Correct 0 ms 468 KB Output is correct
30 Correct 0 ms 468 KB Output is correct
31 Correct 0 ms 468 KB Output is correct
32 Execution timed out 2058 ms 1252 KB Time limit exceeded
33 Halted 0 ms 0 KB -