Submission #1107735

#TimeUsernameProblemLanguageResultExecution timeMemory
11077358pete8Stray Cat (JOI20_stray)C++17
91 / 100
45 ms16412 KiB
#include "Anthony.h" #include <vector> #include<iostream> #include<stack> #include<map> #include<vector> #include<string> #include<cassert> #include<unordered_map> #include <queue> #include <cstdint> #include<cstring> #include<limits.h> #include<cmath> #include<set> #include<algorithm> #include <iomanip> #include<numeric> #include<bitset> using namespace std; #define ll long long #define f first #define s second #define pii pair<int,int> #define ppii pair<int,pii> #define vi vector<int> #define pb push_back #define all(x) x.begin(),x.end() #define rall(x) x.rbegin(),x.rend() #define F(n) for(int i=0;i<n;i++) #define lb lower_bound #define ub upper_bound #define fastio ios::sync_with_stdio(false);cin.tie(NULL); #pragma GCC optimize ("03,unroll-lopps") using namespace std; namespace { int FunctionExample(int i, int A) { return i % A; } } // namespace vector<int> Mark(int n,int m, int a, int b,vector<int> U,vector<int> V) { vector<int> X(m); vector<int>lvl(n+1,1e9),vis(n,0); vector<vector<pii>>adj(n); for(int i=0;i<m;i++){ adj[U[i]].pb({V[i],i}),adj[V[i]].pb({U[i],i}); } queue<int>q; lvl[0]=0; q.push(0); while(!q.empty()){ int cur=q.front(); q.pop(); if(vis[cur])continue; vis[cur]=1; for(auto i:adj[cur])if(!vis[i.f]&&lvl[i.f]>lvl[cur]+1){ lvl[i.f]=lvl[cur]+1; q.push(i.f); } } if(a>=3){ for(int i=0;i<n;i++)for(auto j:adj[i]){ if(lvl[j.f]<lvl[i])X[j.s]=(lvl[j.f]%3); else X[j.s]=lvl[i]%3; } } else{ //0 0 1 1 0 1 //1 1 0 1 0 0 vector<int>pat={0,0,1,1,0,1}; vector<int>val(n,0); function<void(int,int,int)> dfs=[&](int cur,int p,int c){ for(auto i:adj[cur])if(i.f!=p){ if(val[cur]>1)assert(0); if(adj[cur].size()>2){ c=0; val[i.f]=(val[cur]^1); X[i.s]=val[i.f]; dfs(i.f,cur,c); } else{ if(c==0){ val[i.f]=(val[cur]^1); if(val[i.f])c=2; if(cur)c++; X[i.s]=val[i.f]; if(val[i.f]!=pat[c%6]){ cout<<val[i.f]<<" "<<pat[c%6]<<"WHAT\n"; exit(0); } dfs(i.f,cur,c+1); } else{ val[i.f]=pat[c%6]; X[i.s]=val[i.f]; dfs(i.f,cur,c+1); } } } }; dfs(0,-1,0); //for(auto i:adj[149])cout<<i.f<<" "<<X[i.s]<<"HUH\n"; } //for(int i=0;i<m;i++)cout<<U[i]<<" "<<V[i]<<" "<<X[i]<<'\n'; return X; }
#include "Catherine.h" #include <vector> #include<iostream> #include<stack> #include<map> #include<vector> #include<string> #include<cassert> #include<unordered_map> #include <queue> #include <cstdint> #include<cstring> #include<limits.h> #include<cmath> #include<set> #include<algorithm> #include <iomanip> #include<numeric> #include<bitset> using namespace std; #define ll long long #define f first #define s second #define pii pair<int,int> #define ppii pair<int,pii> #define vi vector<int> #define pb push_back #define all(x) x.begin(),x.end() #define rall(x) x.rbegin(),x.rend() #define F(n) for(int i=0;i<n;i++) #define lb lower_bound #define ub upper_bound #define fastio ios::sync_with_stdio(false);cin.tie(NULL); #pragma GCC optimize ("03,unroll-lopps") using namespace std; using namespace std; namespace { int a, b; int variable_example = 0; int found=0; int add[40000]; deque<int>cor={1,0,1,1,0,0}; vector<int>have; int st=0,last=0; } void Init(int A, int B){ ::a = A; ::b = B; found=0; have.clear(); } int Move(vector<int> y){ int cnt=0; for(auto i:y)cnt+=!!i; if(a>=3){ if(cnt==0)assert(0); if(cnt==1){ for(int i=0;i<y.size();i++)if(y[i])return i; } if(cnt==2){ if(y[0]&&y[2])return 2; if(y[1]&&y[2])return 1; if(y[0]&&y[1])return 0; } assert(0); } else{ int one=0,two=0; if(st==0){ for(int i=0;i<y.size();i++)if(y[i]==1)one++; if(one==1){ st=1; found=1; for(int i=0;i<y.size();i++)if(y[i]==1)return last=i; } else{ st=1; for(int i=0;i<y.size();i++)if(y[i]){ have.pb(i); return last=i; } } st=1; } if(!found){ if(cnt==0){ found=1; return -1; } y[last]++; for(int i=0;i<y.size();i++)two+=y[i]; if(two>2){ //cout<<"THISS??\n"; found=1; for(int i=0;i<y.size();i++)if(y[i]==1){ if(i!=last)return last=i; return -1; } } y[last]--; if(have.size()<6){ for(int i=0;i<y.size();i++)if(y[i]){ have.pb(i); return last=i; } } else{ int same=0; for(int i=0;i<6;i++){ int yes=1; for(int j=0;j<6;j++)if(have[j]!=cor[j])yes=0; same|=yes; cor.push_back(cor.front()); cor.pop_front(); } found=1; if(!same)return -1; } } if(found){ for(int i=0;i<y.size();i++)if(y[i]==1)one++; //for(int i=0;i<y.size();i++)cout<<y[i]<<" "; //cout<<'\n'; if(one==1){ for(int i=0;i<y.size();i++)if(y[i]==1)return last=i; } else{ y[last]++; //cout<<"HERE\n"; for(int i=0;i<y.size();i++)if(y[i]==1)return last=i; } } } assert(0); return -1; }

Compilation message (stderr)

Anthony.cpp:34:40: warning: bad option '-funroll-lopps' to pragma 'optimize' [-Wpragmas]
   34 | #pragma GCC optimize ("03,unroll-lopps")
      |                                        ^
Anthony.cpp:38:33: warning: bad option '-funroll-lopps' to attribute 'optimize' [-Wattributes]
   38 | int FunctionExample(int i, int A) {
      |                                 ^
Anthony.cpp:44:71: warning: bad option '-funroll-lopps' to attribute 'optimize' [-Wattributes]
   44 | vector<int> Mark(int n,int m, int a, int b,vector<int> U,vector<int> V) {
      |                                                                       ^
Anthony.cpp: In function 'std::vector<int> Mark(int, int, int, int, std::vector<int>, std::vector<int>)':
Anthony.cpp:75:60: warning: bad option '-funroll-lopps' to attribute 'optimize' [-Wattributes]
   75 |     function<void(int,int,int)> dfs=[&](int cur,int p,int c){
      |                                                            ^
Anthony.cpp: At global scope:
Anthony.cpp:38:5: warning: 'int {anonymous}::FunctionExample(int, int)' defined but not used [-Wunused-function]
   38 | int FunctionExample(int i, int A) {
      |     ^~~~~~~~~~~~~~~

Catherine.cpp:34:40: warning: bad option '-funroll-lopps' to pragma 'optimize' [-Wpragmas]
   34 | #pragma GCC optimize ("03,unroll-lopps")
      |                                        ^
Catherine.cpp:47:23: warning: bad option '-funroll-lopps' to attribute 'optimize' [-Wattributes]
   47 | void Init(int A, int B){
      |                       ^
Catherine.cpp:53:23: warning: bad option '-funroll-lopps' to attribute 'optimize' [-Wattributes]
   53 | int Move(vector<int> y){
      |                       ^
Catherine.cpp: In function 'int Move(std::vector<int>)':
Catherine.cpp:59:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   59 |       for(int i=0;i<y.size();i++)if(y[i])return i;
      |                   ~^~~~~~~~~
Catherine.cpp:71:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   71 |       for(int i=0;i<y.size();i++)if(y[i]==1)one++;
      |                   ~^~~~~~~~~
Catherine.cpp:75:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   75 |         for(int i=0;i<y.size();i++)if(y[i]==1)return last=i;
      |                     ~^~~~~~~~~
Catherine.cpp:79:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   79 |         for(int i=0;i<y.size();i++)if(y[i]){
      |                     ~^~~~~~~~~
Catherine.cpp:92:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   92 |       for(int i=0;i<y.size();i++)two+=y[i];
      |                   ~^~~~~~~~~
Catherine.cpp:96:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   96 |         for(int i=0;i<y.size();i++)if(y[i]==1){
      |                     ~^~~~~~~~~
Catherine.cpp:103:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  103 |         for(int i=0;i<y.size();i++)if(y[i]){
      |                     ~^~~~~~~~~
Catherine.cpp:122:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  122 |       for(int i=0;i<y.size();i++)if(y[i]==1)one++;
      |                   ~^~~~~~~~~
Catherine.cpp:126:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  126 |         for(int i=0;i<y.size();i++)if(y[i]==1)return last=i;
      |                     ~^~~~~~~~~
Catherine.cpp:132:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  132 |         for(int i=0;i<y.size();i++)if(y[i]==1)return last=i;
      |                     ~^~~~~~~~~
Catherine.cpp: At global scope:
Catherine.cpp:42:5: warning: '{anonymous}::add' defined but not used [-Wunused-variable]
   42 | int add[40000];
      |     ^~~
Catherine.cpp:40:5: warning: '{anonymous}::variable_example' defined but not used [-Wunused-variable]
   40 | int variable_example = 0;
      |     ^~~~~~~~~~~~~~~~
#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...