Submission #1265457

#TimeUsernameProblemLanguageResultExecution timeMemory
1265457thenpcTriple Peaks (IOI25_triples)C++20
18 / 100
2094 ms3400 KiB
#include <bits/stdc++.h>
#include "triples.h"
using namespace std;
#define ll long long
ll n,a[200005];

ll count_triples(vector<int> v){
  ll n=v.size();
  for(int i=1;i<=n;i++){
    a[i]=v[i-1];
  }
  ll ans=0;
  for(int i=1;i<=n;i++){
    for(int j=i+1;j<=n;j++){
      int d[4]={j+a[j],i+a[i],a[i]+j,a[j]+i};
      for(int k=0;k<4;k++){
        if(d[k]<=0||d[k]>n){
          continue;
        }
        int check=0;
        for(int u=0;u<k;u++){
          if(d[u]==d[k]){
            check=1;
          }
        }
        if(check==1){
          continue;
        }
        ll b[4]={d[k]-j,d[k]-i,j-i};
        ll c[4]={a[i],a[j],a[d[k]]};
        sort(b,b+3);
        sort(c,c+3);
        int sol=1;
        for(int l=0;l<3;l++){
          if(b[l]!=c[l]){
            sol=0;
          }
        }
        
        ans+=sol;
      }
    }
  }
  return ans;
}
vector<int> construct_range(int m,int k){
  return {1};
}

Compilation message (stderr)

triples.cpp: In function 'long long int count_triples(std::vector<int>)':
triples.cpp:15:18: warning: narrowing conversion of '(((long long int)j) + a[j])' from 'long long int' to 'int' [-Wnarrowing]
   15 |       int d[4]={j+a[j],i+a[i],a[i]+j,a[j]+i};
      |                 ~^~~~~
triples.cpp:15:25: warning: narrowing conversion of '(((long long int)i) + a[i])' from 'long long int' to 'int' [-Wnarrowing]
   15 |       int d[4]={j+a[j],i+a[i],a[i]+j,a[j]+i};
      |                        ~^~~~~
triples.cpp:15:35: warning: narrowing conversion of '(a[i] + ((long long int)j))' from 'long long int' to 'int' [-Wnarrowing]
   15 |       int d[4]={j+a[j],i+a[i],a[i]+j,a[j]+i};
      |                               ~~~~^~
triples.cpp:15:42: warning: narrowing conversion of '(a[j] + ((long long int)i))' from 'long long int' to 'int' [-Wnarrowing]
   15 |       int d[4]={j+a[j],i+a[i],a[i]+j,a[j]+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...
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...