UVa11968 - In The Airport

简介: UVa11968 - In The Airport
importjava.io.IOException;
importjava.io.FileInputStream;
importjava.io.InputStreamReader;
importjava.io.BufferedReader;
importjava.io.PrintWriter;
importjava.io.OutputStreamWriter;
importjava.io.StreamTokenizer;
publicclassMain{
publicstaticbooleanDEBUG=false;
publicBufferedReadercin;
publicPrintWritercout;
publicStreamTokenizertokenizer;
publicintn, m, k;
publiclongtotal;
publiclong[] mArr, nArr, kArr;
publicvoidinit()
    {
try {
if (DEBUG) {
cin=newBufferedReader(newInputStreamReader(
newFileInputStream("d:\\OJ\\uva_in.txt")));
            } else {
cin=newBufferedReader(newInputStreamReader(System.in));
            }
        } catch (IOExceptione) {
e.printStackTrace();
        }
cout=newPrintWriter(newOutputStreamWriter(System.out));
tokenizer=newStreamTokenizer(cin);
    }
publicStringnext()
    {
try {
tokenizer.nextToken();
if (tokenizer.ttype==StreamTokenizer.TT_EOF)
returnnull;
elseif (tokenizer.ttype==StreamTokenizer.TT_WORD)
returntokenizer.sval;
elseif (tokenizer.ttype==StreamTokenizer.TT_NUMBER) 
returnString.valueOf((int)tokenizer.nval);
        } catch (IOExceptione) {
e.printStackTrace();
        }
returnnull;
    }
publicvoidinput()
    {
try {
n=Integer.parseInt(next());
m=Integer.parseInt(next());
k=Integer.parseInt(next());
total=0;
mArr=newlong[m];
kArr=newlong[k];
nArr=newlong[n-m-k];
for (inti=0; i<m; i++) {
mArr[i] =Long.parseLong(next());
total+=mArr[i];
            }
for (inti=0; i<k; i++) {
kArr[i] =Long.parseLong(next());
total+=kArr[i];
            }
inttmpn=n-m-k;
for (inti=0; i<tmpn; i++) {
nArr[i] =Long.parseLong(next());
total+=nArr[i];
            }
        } catch (Exceptione) {
e.printStackTrace();
        }
    }
publicvoidsolve(intt)
    {
cout.printf("Case #%d: ", t);
intans1=0, ans2=0;
for (inti=0; i<m; i++) {
longtmp1=n*mArr[i] -total;
longtmp2=n*mArr[ans1] -total;
if (Math.abs(tmp1) <Math.abs(tmp2)) ans1=i;
elseif (Math.abs(tmp1) ==Math.abs(tmp2) &&mArr[i] <mArr[ans1]) ans1=i;
        }
for (inti=0; i<k; i++) {
longtmp1=n*kArr[i] -total;
longtmp2=n*kArr[ans2] -total;
if (Math.abs(tmp1) <Math.abs(tmp2)) ans2=i;
elseif (Math.abs(tmp1) ==Math.abs(tmp2) &&kArr[i] <kArr[ans2]) ans2=i;
        }
cout.printf("%d %d", mArr[ans1], kArr[ans2]);
cout.println();
cout.flush();
    }
publicstaticvoidmain(String[] args)
    {
try {
Mainsolver=newMain();
solver.init();
intt=Integer.parseInt(solver.next());
for (inti=1; i<=t; i++) {
solver.input();
solver.solve(i);
            }
        } catch (Exceptione) {
e.printStackTrace();
        }
    }
}
目录
相关文章
|
7月前
uva 10340 all in all
输入两个字符串s和t,判断是否可以从t中删除0个或多个字符(其他字符顺序不变),得到字符串是。
21 0
|
C++
UVA 之10010 - Where's Waldorf?
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/24863879 ...
685 0
|
机器学习/深度学习
uva 12470 Tribonacci
点击打开uva12470  思路: 矩阵快速幂 分析: 1 裸题 代码: /************************************************ * By: chenguolin ...
966 0
|
人工智能
uva 305 Joseph
点击打开链接uva 305 思路: 数学+打表 分析: 1 传统的约瑟夫问题是给定n个人和m,每次数m次把当前这个人踢出局,问最后留下的一个人的编号 2 这一题是前k个人是好人,后面k个是坏人。
1012 0
|
安全
UVA3644
题意:有一些简单化合物,每个化合物都由两种元素组成,每个元素用一个大写字母组成,你是一个装箱工人,从实验员那里按照顺序依次把一些简单化合物装到车上,但是这里存在一个安全隐患,如果车上存在k个简单化合物,正好包含k中元素,那么他们将组成一个易爆易燃的化合物,为了安全起见,每当你拿到一个化合物的时候,如果他和已装车的化合物形成易爆化合物,你就应当拒绝装车,否则就应该装车,编程输出有多少个没有装车的化合物。
509 0
uva10340 Ail in All
题意:输入两个字符串s和t,判断是否可以从t种删除0个或多个字符(其他字符不变),得到字符串s,比如abcde可以得到bce,单数无法得到dc 分析:简单模拟即可 1 #include 2 #include 3 #include 4 #define zz 5 usin...
556 0