Submission #134024

#TimeUsernameProblemLanguageResultExecution timeMemory
134024dragonslayeritPairs (IOI07_pairs)C++14
47 / 100
4061 ms2672 KiB
#include <cstdio>
#include <vector>
#include <algorithm>
#include <array>

int main(){
  int B,N,D,M;
  scanf("%d %d %d %d",&B,&N,&D,&M);
  if(B==1){
    std::vector<int> xs;
    for(int i=0;i<N;i++){
      int X;
      scanf("%d",&X);
      xs.push_back(X);
    }
    std::sort(xs.begin(),xs.end());
    long long ans=0;
    int j=0;
    for(int i=0;i<N;i++){
      while(xs[i]-xs[j]>D) j++;
      ans+=i-j;
    }
    printf("%lld\n",ans);
  }else if(B==2){
    std::vector<std::array<int,2> > ps;
    for(int i=0;i<N;i++){
      int X,Y;
      scanf("%d %d",&X,&Y);
      ps.push_back({X,Y});
    }
    std::sort(ps.begin(),ps.end());
    long long ans=0;
    for(int i=0;i<N;i++){
      for(int j=i+1;j<N;j++){
	if(std::abs(ps[i][0]-ps[j][0])+std::abs(ps[i][1]-ps[j][1])<=D){
	  ans++;
	}
      }
    }
    printf("%lld\n",ans);
  }else if(B==3){
    std::vector<std::array<int,3> > ps;
    for(int i=0;i<N;i++){
      int X,Y,Z;
      scanf("%d %d %d",&X,&Y,&Z);
      ps.push_back({X,Y,Z});
    }
    std::sort(ps.begin(),ps.end());
    long long ans=0;
    for(int i=0;i<N;i++){
      for(int j=i+1;j<N;j++){
	if(std::abs(ps[i][0]-ps[j][0])+std::abs(ps[i][1]-ps[j][1])+std::abs(ps[i][2]-ps[j][2])<=D){
	  ans++;
	}
      }
    }
    printf("%lld\n",ans);
  }
}

Compilation message (stderr)

pairs.cpp: In function 'int main()':
pairs.cpp:8:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d %d %d",&B,&N,&D,&M);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
pairs.cpp:13:12: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
       scanf("%d",&X);
       ~~~~~^~~~~~~~~
pairs.cpp:28:12: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
       scanf("%d %d",&X,&Y);
       ~~~~~^~~~~~~~~~~~~~~
pairs.cpp:45:12: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
       scanf("%d %d %d",&X,&Y,&Z);
       ~~~~~^~~~~~~~~~~~~~~~~~~~~
#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...