ZeroJudge i378 O(NlogN)解法 解題心得( 題目 )
解題概念:排序、中點
解題方法:檢查全部的中點是否一樣
//Author:En Chi Tsung(欉恩祁)
//Date:2022/06/08
import java.util.*;
import java.time.*;
import java.io.*;
import java.math.*;
public class Main {
public static BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
public static BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
public static long ret;
public static int reti,rd;
public static boolean neg;
public static final int mod=998244353;
public static final int mod2=1_000_000_007;
public static void main(String[] args) throws Exception{
final int n=readint();
final int ad=10000;
final int max=20005;
ArrayList<Integer>[] a=new ArrayList[max];
for(int i=0;i<max;i++) {
a[i]=new ArrayList<>();
}
for(int i=0;i<n;i++) {
a[readint()+ad].add(readint());
}
int now=-(1<<30),len;
boolean ok;
ok=true;
for(int i=0;i<max;i++) {
if(a[i].isEmpty())continue;
Collections.sort(a[i]);
len=a[i].size();
if(now==-(1<<30))now=a[i].get(0)+a[i].get(len-1);
for(int j=0;j<=(len/2);j++) {
if(a[i].get(j)+a[i].get(len-1-j)!=now) {
ok=false;
break;
}
}
}
System.out.println((ok)?"success":"failure");
}
public static int readint() throws Exception{
reti=0;
neg=false;
while(rd<48||rd>57) {
rd=br.read();
if(rd=='-') {
neg=true;
}
}
while(rd>47&&rd<58) {
reti*=10;
reti+=(rd&15);
rd=br.read();
}
if(neg)reti*=-1;
return reti;
}
public static long readlong() throws Exception{
ret=0;
neg=false;
while(rd<48||rd>57) {
rd=br.read();
if(rd=='-') {
neg=true;
}
}
while(rd>47&&rd<58) {
ret*=10;
ret+=(rd&15);
rd=br.read();
}
if(neg)ret*=-1;
return ret;
}
}
/*
*/
/*
*/
class Pii{
int x,y;
long ans;
Pii(long num,int a,int b){
ans=num;
x=a;
y=b;
}
}
class Pll{
long x,y;
Pll(long a,long b){
x=a;
y=b;
}
}
全站熱搜