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;

    }

}


 

 

 

 

 

 

 

 

 

 

arrow
arrow
    全站熱搜

    En Chi Tsung 發表在 痞客邦 留言(0) 人氣()