Submission #1051709

#TimeUsernameProblemLanguageResultExecution timeMemory
1051709antonTriangles (CEOI18_tri)C++17
35 / 100
3103 ms59108 KiB
#include<bits/stdc++.h> #include"trilib.h" using namespace std; int N; vector<vector<int>> good(deque<int> v){ vector<vector<int>> res; for(int i = 0; i<v.size(); i++){ res.push_back(vector<int>(v.begin(), v.end())); int val= v.back(); v.push_front(val); v.pop_back(); } return res; } signed main(){ N = get_n(); vector<vector<vector<bool>>> above(N, vector<vector<bool>>(N, vector<bool>(N, false))); vector<vector<vector<bool>>> know(N, vector<vector<bool>>(N, vector<bool>(N, false))); auto not_removed = [&](int i, int j, int k){ for(auto e: good({i, j, k})){ if(know[e[0]][e[1]][e[2]] && !above[e[0]][e[1]][e[2]]){ return false; } } for(auto e: good({j,i, k})){ if(know[e[0]][e[1]][e[2]] && above[e[0]][e[1]][e[2]]){ return false; } } return true; }; for(int i = 0; i<N; i++){ for(int j = i+1; j<N; j++){ for(int k = j+1; k<N; k++){ if(not_removed(i, j, k)){ bool this_order = is_clockwise(i+1, j+1, k+1); vector<int> res({i, j, k}); bool ok = true; while(ok){ know[res[0]][res[1]][res[2]] =true; ok = next_permutation(res.begin(), res.end()); } for(auto e: good({i, j, k})){ above[e[0]][e[1]][e[2]] = this_order; } for(auto e: good({j,i, k})){ above[e[0]][e[1]][e[2]] = !this_order; } } } } } int res= 0; for(int i = 0; i<N; i++){ for(int j = 0; j<N; j++){ int count_above = 0; for(int k = 0; k<N; k++){ if(above[i][j][k]){ count_above++; } } if(count_above == N-2){ res++; } } } cout<<res<<endl; }

Compilation message (stderr)

tri.cpp: In function 'std::vector<std::vector<int> > good(std::deque<int>)':
tri.cpp:10:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   10 |     for(int i = 0; i<v.size(); 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...
#Verdict Execution timeMemoryGrader output
Fetching results...