Submission #1137593

#TimeUsernameProblemLanguageResultExecution timeMemory
1137593KhoaDuyAncient Machine (JOI21_ancient_machine)C++20
Compilation error
0 ms0 KiB
#include "Anna.h" #include<bits/stdc++.h> using namespace std; #define int long long const int blsz=63,blcomsz=44,lim=17; long long DP[blsz+1]; void setup(){ DP[0]=1,DP[1]=2; for(int i=2;i<=blsz;i++){ DP[i]=DP[i-1]+DP[i-2]; } } string toBin(long long x,int limit){ string s=""; while(x>0){ s+=((x&1)+'0'); x>>=1; } while(s.length()<limit){ s+='0'; } reverse(s.begin(),s.end()); return s; } long long toInt(string &s,int l,int r){ long long x=0; for(int i=l;i<=r;i++){ x<<=1; x+=(s[i]-'0'); } return x; } void Anna(int n,vector<char> s){ setup(); int posX=-1,posY=-1,posZ=-1; for(int i=0;i<n;i++){ if(s[i]=='X'){ posX=i; break; } } for(int i=n-1;i>=0;i--){ if(s[i]=='Z'){ posZ=i; break; } } for(int i=posZ;i>=max(posX,0);i--){ if(s[i]=='Y'){ posY=i; break; } } if(posX==-1||posY==-1||posZ==-1){ posX=0,posY=1,posZ=2; } string send=""; send+=toBin(posX,lim); send+=toBin(posY,lim); send+=toBin(posZ,lim); int mark[n+1000]={0}; for(int i=posX;i<posY;i++){ if(s[i]=='Y'&&s[i+1]=='X'){ mark[i]=1; } } for(int k=0;k<n;k+=blsz){ long long pos=0; for(int i=k;i<k+blsz;i++){ if(mark[i]==1){ pos+=DP[k+blsz-1-i]; } } send+=toBin(pos,blcomsz); } for(int i=0;i<send.size();i++){ Send(send[i]-'0'); } }
#include "Bruno.h" #include<bits/stdc++.h> using namespace std; #define int long long const int blsz=63,blcomsz=44,lim=17; long long DP[blsz+1]; void setup(){ DP[0]=1,DP[1]=2; for(int i=2;i<=blsz;i++){ DP[i]=DP[i-1]+DP[i-2]; } } string toBin(long long x,int limit){ string s=""; while(x>0){ s+=((x&1)+'0'); x>>=1; } while(s.length()<limit){ s+='0'; } reverse(s.begin(),s.end()); return s; } long long toInt(string &s,int l,int r){ long long x=0; for(int i=l;i<=r;i++){ x<<=1; x+=(s[i]-'0'); } return x; } void Bruno(int n,int l,vector<int> a){ setup(); string trans=""; for(int i=0;i<l;i++){ trans+=(a[i]+'0'); } bool spe[n]={false}; spe[toInt(trans,0,lim-1)]=true; spe[toInt(trans,lim,2*lim-1)]=true; spe[toInt(trans,2*lim,3*lim-1)]=true; string state=""; for(int k=3*lim;k<trans.length();k+=blcomsz){ long long pos=toInt(trans,k,k+blcomsz-1); for(int len=blsz;len>0;len--){ if(pos>DP[len-1]){ pos-=DP[len-1]; state+='1'; state+='0'; len--; } else{ state+='0'; } } } for(int i=0;i<state.length();i++){ if(state[i]=='1'){ spe[i]=true; } } for(int i=0;i<n;i++){ if(!spe[i]){ Remove(i); } } bool skip=false; for(int i=n-1;i>=0;i--){ if(spe[i]){ if(!skip){ skip=true; continue; } Remove(i); } } for(int i=n-1;i>=0;i--){ if(spe[i]){ Remove(i); break; } } }

Compilation message (stderr)

# 1번째 컴파일 단계

Anna.cpp: In function 'void Anna(long long int, std::vector<char>)':
Anna.cpp:48:26: error: no matching function for call to 'max(long long int&, int)'
   48 |     for(int i=posZ;i>=max(posX,0);i--){
      |                       ~~~^~~~~~~~
In file included from /usr/include/c++/11/vector:60,
                 from Anna.h:1,
                 from Anna.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:254:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  254 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/11/bits/stl_algobase.h:254:5: note:   template argument deduction/substitution failed:
Anna.cpp:48:26: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   48 |     for(int i=posZ;i>=max(posX,0);i--){
      |                       ~~~^~~~~~~~
In file included from /usr/include/c++/11/vector:60,
                 from Anna.h:1,
                 from Anna.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:300:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)'
  300 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algobase.h:300:5: note:   template argument deduction/substitution failed:
Anna.cpp:48:26: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   48 |     for(int i=posZ;i>=max(posX,0);i--){
      |                       ~~~^~~~~~~~
In file included from /usr/include/c++/11/vector:62,
                 from Anna.h:1,
                 from Anna.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3461:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(std::initializer_list<_Tp>)'
 3461 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3461:5: note:   template argument deduction/substitution failed:
Anna.cpp:48:26: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   48 |     for(int i=posZ;i>=max(posX,0);i--){
      |                       ~~~^~~~~~~~
In file included from /usr/include/c++/11/vector:62,
                 from Anna.h:1,
                 from Anna.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3467:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(std::initializer_list<_Tp>, _Compare)'
 3467 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3467:5: note:   template argument deduction/substitution failed:
Anna.cpp:48:26: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   48 |     for(int i=posZ;i>=max(posX,0);i--){
      |                       ~~~^~~~~~~~