Submission #1344776

#TimeUsernameProblemLanguageResultExecution timeMemory
1344776ElayV13Triple Peaks (IOI25_triples)C++20
Compilation error
0 ms0 KiB
#include "triples.h"
#include "bits/stdc++.h"
using namespace std;

#define ll long long

int N;
vector<int>h;

ll check(int i,int j,int k){
      N=h.size();
      if(j<0) return 0;
      if(j>=N) return 0;
      if(!(i<j&&j<k)) return 0;
      vector<int>D1={h[i],h[j],h[k]};
      vector<int>D2={abs(i-j),abs(j-k),abs(k-i)};
      sort(D1.begin(),D1.end());
      sort(D2.begin(),D2.end());
      return (D1==D2);
}

long long count_triples(vector<int>H)
{
      h=H;
      int N=H.size();
      ll res=0;
      for(int k=0;k<N;k++){
            int i=k-H[k];
            if(i<0) continue;
            int j1=k-H[i];
            int j2=H[i]+i;
            res+=check(i,j1,k);
            res+=check(i,j2,k);
      }
      return res;
}

vector<int>construct_range(int M,int K)
{
      vector<int>H(M);
      vector<int>ord={1,2,1,3,2,3};
      int p=0;
      for(int i=0;i<M;i++){
            H[i]=ord[p];
            ++p;
            if(p==ord.size()) p=0;
      }
      return H;
}
#include "triples.h"
#include "bits/stdc++.h"
using namespace std;

#define ll long long

int N;
vector<int>h;

ll check(int i,int j,int k){
      N=h.size();
      if(j<0) return 0;
      if(j>=N) return 0;
      if(!(i<j&&j<k)) return 0;
      vector<int>D1={h[i],h[j],h[k]};
      vector<int>D2={abs(i-j),abs(j-k),abs(k-i)};
      sort(D1.begin(),D1.end());
      sort(D2.begin(),D2.end());
      return (D1==D2);
}

long long count_triples(vector<int>H)
{
      h=H;
      int N=H.size();
      ll res=0;
      for(int k=0;k<N;k++){
            int i=k-H[k];
            if(i<0) continue;
            int j1=k-H[i];
            int j2=H[i]+i;
            res+=check(i,j1,k);
            res+=check(i,j2,k);
      }
      return res;
}

vector<int>construct_range(int M,int K)
{
      vector<int>H(M);
      vector<int>ord={1,2,1,3,2,3};
      int p=0;
      for(int i=0;i<M;i++){
            H[i]=ord[p];
            ++p;
            if(p==ord.size()) p=0;
      }
      return H;
}

Compilation message (stderr)

triples.cpp:56:5: error: redefinition of 'int N'
   56 | int N;
      |     ^
triples.cpp:7:5: note: 'int N' previously declared here
    7 | int N;
      |     ^
triples.cpp:57:12: error: redefinition of 'std::vector<int> h'
   57 | vector<int>h;
      |            ^
triples.cpp:8:12: note: 'std::vector<int> h' previously defined here
    8 | vector<int>h;
      |            ^
triples.cpp:59:4: error: redefinition of 'long long int check(int, int, int)'
   59 | ll check(int i,int j,int k){
      |    ^~~~~
triples.cpp:10:4: note: 'long long int check(int, int, int)' previously defined here
   10 | ll check(int i,int j,int k){
      |    ^~~~~
triples.cpp:71:11: error: redefinition of 'long long int count_triples(std::vector<int>)'
   71 | long long count_triples(vector<int>H)
      |           ^~~~~~~~~~~~~
triples.cpp:22:11: note: 'long long int count_triples(std::vector<int>)' previously defined here
   22 | long long count_triples(vector<int>H)
      |           ^~~~~~~~~~~~~
triples.cpp:87:12: error: redefinition of 'std::vector<int> construct_range(int, int)'
   87 | vector<int>construct_range(int M,int K)
      |            ^~~~~~~~~~~~~~~
triples.cpp:38:12: note: 'std::vector<int> construct_range(int, int)' previously defined here
   38 | vector<int>construct_range(int M,int K)
      |            ^~~~~~~~~~~~~~~