Submission #1265440

#TimeUsernameProblemLanguageResultExecution timeMemory
1265440thenpcTriple Peaks (IOI25_triples)C++20
0 / 100
2095 ms3396 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[8]={j-a[j],j+a[j],i-a[i],i+a[i],a[i]+j,j-a[i],a[j]+i,i-a[j]};
      for(int k=0;k<8;k++){
        if(d[k]<=0||d[k]>n){
          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:14:18: warning: narrowing conversion of '(((long long int)j) - a[j])' from 'long long int' to 'int' [-Wnarrowing]
   14 |       int d[8]={j-a[j],j+a[j],i-a[i],i+a[i],a[i]+j,j-a[i],a[j]+i,i-a[j]};
      |                 ~^~~~~
triples.cpp:14:25: warning: narrowing conversion of '(((long long int)j) + a[j])' from 'long long int' to 'int' [-Wnarrowing]
   14 |       int d[8]={j-a[j],j+a[j],i-a[i],i+a[i],a[i]+j,j-a[i],a[j]+i,i-a[j]};
      |                        ~^~~~~
triples.cpp:14:32: warning: narrowing conversion of '(((long long int)i) - a[i])' from 'long long int' to 'int' [-Wnarrowing]
   14 |       int d[8]={j-a[j],j+a[j],i-a[i],i+a[i],a[i]+j,j-a[i],a[j]+i,i-a[j]};
      |                               ~^~~~~
triples.cpp:14:39: warning: narrowing conversion of '(((long long int)i) + a[i])' from 'long long int' to 'int' [-Wnarrowing]
   14 |       int d[8]={j-a[j],j+a[j],i-a[i],i+a[i],a[i]+j,j-a[i],a[j]+i,i-a[j]};
      |                                      ~^~~~~
triples.cpp:14:49: warning: narrowing conversion of '(a[i] + ((long long int)j))' from 'long long int' to 'int' [-Wnarrowing]
   14 |       int d[8]={j-a[j],j+a[j],i-a[i],i+a[i],a[i]+j,j-a[i],a[j]+i,i-a[j]};
      |                                             ~~~~^~
triples.cpp:14:53: warning: narrowing conversion of '(((long long int)j) - a[i])' from 'long long int' to 'int' [-Wnarrowing]
   14 |       int d[8]={j-a[j],j+a[j],i-a[i],i+a[i],a[i]+j,j-a[i],a[j]+i,i-a[j]};
      |                                                    ~^~~~~
triples.cpp:14:63: warning: narrowing conversion of '(a[j] + ((long long int)i))' from 'long long int' to 'int' [-Wnarrowing]
   14 |       int d[8]={j-a[j],j+a[j],i-a[i],i+a[i],a[i]+j,j-a[i],a[j]+i,i-a[j]};
      |                                                           ~~~~^~
triples.cpp:14:67: warning: narrowing conversion of '(((long long int)i) - a[j])' from 'long long int' to 'int' [-Wnarrowing]
   14 |       int d[8]={j-a[j],j+a[j],i-a[i],i+a[i],a[i]+j,j-a[i],a[j]+i,i-a[j]};
      |                                                                  ~^~~~~
#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...