제출 #439452

#제출 시각아이디문제언어결과실행 시간메모리
439452anmolagarwalVlak (COCI20_vlak)C++17
70 / 70
28 ms21428 KiB
#include <bits/stdc++.h> using namespace std; typedef long long LL; const LL MOD = 1000000007; #define pb push_back #define all(c) (c).begin(), (c).end() #define debug(x) cout << #x << " : " << x << endl #define part cout << "----------------------------------\n"; #include <iostream> int dx[] = {1, 1, 0, -1, -1, -1, 0, 1}; // trick to explore an implicit 2D grid int dy[] = {0, 1, 1, 1, 0, -1, -1, -1}; // S,SE,E,NE,N,NW,W,SW neighbors //GO FOR EVEN FOR 4 moves #define fastinput \ ios_base::sync_with_stdio(false); \ cin.tie(NULL); \ cout.tie(NULL); vector<string> s[2]; //2 tries struct node { int arr[2][26]; int id; }; vector<node *> v; node *get_node() { node *a = new node; for (int i = 0; i < 2; i++) { for (int j = 0; j < 26; j++) { a->arr[i][j] = -1; } } a->id = v.size(); return a; } void insert(string s, int person) { int i, j, k; // cout << "inserting " << s << " for " << person << endl; node *curr_node = v[0]; // cout << "v[0] is " << endl; // for (i = 0; i < 3; i++) // { // cout << v[0]->arr[person][i] << endl; // } // cout << "\n"; for (auto &x : s) { int char_id = x - 'a'; // cout << "curr node id is " << curr_node->id << endl; // cout << ((curr_node == v[0]) ? 1:0) << endl; if (curr_node->arr[person][char_id] == -1) { //make new node if (curr_node->arr[1 - person][char_id] == -1) { // cout << "did not find " << x << endl; curr_node->arr[person][char_id] = v.size(); v.pb(get_node()); } else { curr_node->arr[person][char_id] = curr_node->arr[1 - person][char_id]; } } else { // cout << "found " << x << endl; } // debug(curr_node->arr[person][char_id]); // debug(v.size()); assert(curr_node->arr[person][char_id] < v.size()); curr_node = (v[curr_node->arr[person][char_id]]); } // cout << "AGAIN v[0] is " << endl; // for (i = 0; i < 3; i++) // { // cout << v[0]->arr[person][i] << endl; // } // cout << "\n"; // part; } bool is_winning(int person_turn, node *curr_node) { //must be losing for other person // bool curr_stat = false; // debug(person_turn); for (int i = 0; i < 26; i++) { if (curr_node->arr[person_turn][i] != -1) { // debug(i); bool stat = is_winning(person_turn ^ 1, v[curr_node->arr[person_turn][i]]); // cout << "node at " << (char)(i + 'a') << " returned " << stat << endl; if (stat == false) { return true; } } } return false; } struct node *root = get_node(); int main() { fastinput; LL n, i, j, k, temp, tc; int num1, num2; cin >> num1; v.pb(root); for (i = 0; i < num1; i++) { string t; cin >> t; s[0].pb(t); insert(t, 0); } // return 0; cin >> num2; for (i = 0; i < num2; i++) { string t; cin >> t; s[1].pb(t); insert(t, 1); } ////////////////////////////////// // debug(v.size()); bool final = is_winning(0, v[0]); if (final) { cout << "Nina" << endl; } else { cout << "Emilija" << endl; } return 0; }

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

In file included from /usr/include/c++/10/cassert:44,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:33,
                 from Main.cpp:1:
Main.cpp: In function 'void insert(std::string, int)':
Main.cpp:78:48: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<node*>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   78 |         assert(curr_node->arr[person][char_id] < v.size());
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
Main.cpp:44:9: warning: unused variable 'i' [-Wunused-variable]
   44 |     int i, j, k;
      |         ^
Main.cpp:44:12: warning: unused variable 'j' [-Wunused-variable]
   44 |     int i, j, k;
      |            ^
Main.cpp:44:15: warning: unused variable 'k' [-Wunused-variable]
   44 |     int i, j, k;
      |               ^
Main.cpp: In function 'int main()':
Main.cpp:117:8: warning: unused variable 'n' [-Wunused-variable]
  117 |     LL n, i, j, k, temp, tc;
      |        ^
Main.cpp:117:14: warning: unused variable 'j' [-Wunused-variable]
  117 |     LL n, i, j, k, temp, tc;
      |              ^
Main.cpp:117:17: warning: unused variable 'k' [-Wunused-variable]
  117 |     LL n, i, j, k, temp, tc;
      |                 ^
Main.cpp:117:20: warning: unused variable 'temp' [-Wunused-variable]
  117 |     LL n, i, j, k, temp, tc;
      |                    ^~~~
Main.cpp:117:26: warning: unused variable 'tc' [-Wunused-variable]
  117 |     LL n, i, j, k, temp, tc;
      |                          ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...