ACM题目、测试用例及参考答案汇编——一次ACM协会内部测试

合集下载

ACM软件大赛之编程大赛题目(附部分答案)

ACM软件大赛之编程大赛题目(附部分答案)

ACM 软件大赛之编程大赛比赛注意事项:l 比赛时间为3小时(小时(180180分钟);比赛分两个阶段:第一阶段限时30分钟,完成公示的3题,第二阶段限时150分钟(事先完成第一阶段题目的小组可提前进入第二阶段); l 比赛第一阶段的3道题目将在前期宣传中告知参赛选手,比赛第二阶段的题目将由赛事主席当场公布竞赛题目;主席当场公布竞赛题目;l 前两阶段题目分为三个分值(前两阶段题目分为三个分值(55分、分、1010分、分、1515分),第一阶段3道公示题都为5分;第二阶段总共15道题,根据不同的难度分值不同,分别为5道5分题,分题,55道10分题,分题,55道15分题;第一阶段参赛队员不可参考任何相关资料;第二阶段参赛队员可以携带诸如书,如书,手册,程序清单等参考资料。

手册,程序清单等参考资料。

手册,程序清单等参考资料。

比赛过程中队员不得携带任何电子媒质的资料;参比赛过程中队员不得携带任何电子媒质的资料;参赛者可以选择自己擅长的语言(赛者可以选择自己擅长的语言(C,C++,JAVA C,C++,JAVA 等等)进行编写等等)进行编写l 考虑到大一和大二学生的知识掌握程度,大一参加选手一开始就会有10分的分数,最后总分是由所做题目及初始的10分相加得到。

分相加得到。

l 每组队员根据安排使用电脑,小组人数为两人的使用一台电脑,超过两人的使用两台电脑,每台的电脑配置完全相同;脑,每台的电脑配置完全相同;l 各小组每做完一题或几题,必须交予评委老师运行,评委老师当场给分;各小组每做完一题或几题,必须交予评委老师运行,评委老师当场给分; l 如在比赛中发现作弊等行为,将取消比赛资格。

如在比赛中发现作弊等行为,将取消比赛资格。

第一阶段公示题目:题目一:(5分) 打印以下图形,纵遵从字母顺序,行字符数遵从斐波那契数列ABCCDDD EEEEEFFFFFFFFGGGGGGGGGGGGG#include<iostream>int f(int x){int a = 1 , b = 0;int max_ = x;int sum = 0; for(int i = 0; i < max_ ; i++){sum = a + b;a = b;b = sum;}return sum;}void loop_print(int num,char chr){for(int i = 0; i < num ;i++)std::cout<<chr;std::cout<<"\n";}int main(){int line_max = 7;char chr = 'A';for(int line = 0; line < line_max; line++){loop_print(f(line+1),chr);chr++;}return 0;}题目二:(5分)有个电子钟,12点显示为12:00(即12小时制),那么请问一天24时间内,出现连续3个相同数字的钟点有几个?#include<iostream>using namespace std;bool check(int me){int h= me/100;int m= me-100*h;return h<=12&&m<=59&&h>0?true:false;//12小时制小时制}int main(){int me=0;int j(0);//总计数器总计数器while( me<1270){//max 12:59int t= me;int n[4];for(int i=0;i<4;i++){n[i]=t%10;t /= 10;}if(n[1]==n[2]&&(n[0]==n[1]||n[3]==n[1])&&check( me)){//cout<<n[3]<<n[2]<<":"<<n[1]<<n[0]<<"\n";//testj++;me++;}cout<<"total: "<<j*2<<endl;}题目三:(5分)10进制的四位数中有几个符合如下特征:将其分别表示为16进制、10进制、12进制,在每种状态下,分别将各个位上的数相加,能得到3个相等10进制数。

ACM测试

ACM测试

P1 指数取模Time Limit: 2000ms Memory Limit:32768KBProblem description由于a^n(a的n次方)的数值非常大,有时候仅想知道最后几位是多少。

现请你编写程序输出(a^n)%k的结果。

Input输入中有多个测试用例,每个测试用例占一行。

分别为三个整数a,n ,k。

其中1<=a,n<=1e9,1<=k<=10000。

Output输出每个测试用例的(a^n)%k的结果。

Sample Input3 3 52 32 52 30 5Sample Output214P2 图形检测Time Limit: 1000ms, Memory Limit:32768KBProblem description判断圆与矩形是否有重叠部分,相切情形无重叠。

Input输入有多个测试用例,每个用例占二行,第一行是用空隔隔开的三个数x,y,r,其中x,y为圆的圆心,r为半径(r>0.0),第二行是空隔隔开的四个数x1,y1,x2,y2,表示一个矩形的一条对角线上的两个顶点的坐标。

矩形的四边均与坐标轴平行或者垂直。

以上数据精度保存到小数点后两位。

Output当有重合的时候输出“Yes”,否则输出“No”。

Sample Input1 1 10 0 2 21 1 12 23 3Sample OutputYesNoP3 恶魔岛Time Limit: 30000ms Memory Limit:32768KBThe Problemgoldfisher为了解救被绑架的未婚妻而来到了恶魔岛。

上岛前,一个神秘的印度人yingnan 告诉他恶魔岛处处布满陷阱,只有沿着地上标记数字和为最大的路径才能找到公主。

为此他给goldfisher画了一个草图,假使地上标记的数字如下:12 31 5 99 1 1 1其中的最大路径是1-3-9-1,最大的和是14,只有沿着这条路径走,才能找到公主。

ACM题目及答案

ACM题目及答案

Qwertyuiopasdfghjklzxcvbnmqwertyui opasdfghjklzxcvbnmqwertyuiopasdfgh jklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzxc vbnmqwertyuiopasdfghjklzxcvbnmqw ertyuiopasdfghjklzxcvbnmqwertyuiopa sdfghjklzxcvbnmqwertyuiopasdfghjklz xcvbnmqwertyuiopasdfghjklzxcvbnmq wertyuiopasdfghjklzxcvbnmqwertyuio zxcvbnmqwertyuiopasdfghjklzxcvbnm qwertyuiopasdfghjklzxcvbnmqwertyui opasdfghjklzxcvbnmrtyuiopasdfghjklz xcvbnmqwertyuiopasdfghjklzxcvbnmq wertyuiopasdfghjklzxcvbnmqwertyuio pasdfghjklzxcvbnmqwertyuiopasdfghj Sincisco ACM 答案 2010/11/10 Sincisco 小组成员排球队员站位问题i【题目】排球队员站位问题┏━━━━━━━━┓图为排球场的平面图,其中一、二、三、四、五、六为位置编号,┃┃二、三、四号位置为前排,一、六、五号位为后排。

某队比赛时,┃┃一、四号位放主攻手,二、五号位放二传手,三、六号位放副攻┠──┬──┬──┨手。

队员所穿球衣分别为1,2,3,4,5,6号,但每个队┃ 四│ 三│ 二┃员的球衣都与他们的站位号不同。

acm竞赛试题及答案

acm竞赛试题及答案

acm竞赛试题及答案ACM(Association for Computing Machinery)竞赛是一项全球性计算机科学竞赛,旨在锻炼参赛者的问题解决能力和编程技巧。

每年都有数千名来自不同学校的学生参加这一挑战。

本文将提供一些最近的ACM竞赛试题以及相应的答案,帮助读者了解和学习竞赛题目的类型和解题思路。

1. 问题描述给定一个由N个整数组成的数组A,请编写一个程序,找出数组中两个不同元素的差的最小值。

2. 输入格式- 第一行包含一个整数N,表示数组A的长度。

- 第二行包含N个以空格分隔的整数,表示数组A中的元素。

3. 输出格式输出一个整数,表示数组中两个不同元素的差的最小值。

4. 示例输入:51 52 9 12输出:15. 解题思路该问题可以通过对数组进行排序,并比较相邻两个数的差值来求解。

首先,将数组A进行升序排序。

然后,遍历排序后的数组,依次计算相邻两个数的差值,并记录其中的最小值。

最后,返回这个最小差值即可。

6. 代码实现```pythondef min_difference(nums):nums.sort() # 对数组进行升序排序min_diff = float('inf') # 初始化最小差值为正无穷大for i in range(len(nums)-1):diff = abs(nums[i] - nums[i+1]) # 计算相邻两个数的差值min_diff = min(min_diff, diff) # 更新最小差值return min_diff# 输入处理N = int(input())A = list(map(int, input().split()))# 调用函数并输出结果result = min_difference(A)print(result)```7. 答案解析对给定的数组进行排序后,遍历数组计算相邻两个数的差值,并记录其中的最小值。

上述代码中,首先将数组A进行升序排序,然后使用一个变量`min_diff`来记录最小差值。

(完整版)杭电acm部分答案

(完整版)杭电acm部分答案

Problem DescriptionCalculate A + B.InputEach line will contain two integers A and B. Process to end of file.OutputFor each case, output A + B in one line.Sample Input1 1Sample Output2#include<stdio.h>void main(){int a,b;while(scanf("%d %d",&a,&b)!=EOF){printf("%d\n",a+b);}}Problem DescriptionHey, welcome to HDOJ(Hangzhou Dianzi University Online Judge).In this problem, your task is to calculate SUM(n) = 1 + 2 + 3 + ... + n.InputThe input will consist of a series of integers n, one integer per line.OutputFor each case, output SUM(n) in one line, followed by a blank line. You may assume the result will be in the range of 32-bit signed integer.Sample Input1100Sample Output15050#include<stdio.h>void main(){int n,sum,i;while(scanf("%d",&n)!=EOF){sum=0;for( i=0;i<=n;i++)sum+=i;printf("%d\n\n",sum);}}Problem DescriptionI have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.InputThe first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines follow, each line consists of two positive integers, A and B. Notice that the integers are very large, that means you should not process them by using 32-bit integer. You may assume the length of each integer will not exceed 1000.OutputFor each test case, you should output two lines. The first line is "Case #:", # means the number of the test case. The second line is the an equation "A + B = Sum", Sum means the result of A + B. Note there are some spaces int the equation. Output a blank line between two test cases.Sample Input21 2112233445566778899 998877665544332211Sample OutputCase 1:1 +2 = 3Case 2:112233445566778899 + 998877665544332211 = 1111111111111111110 #include<stdio.h>#include<string.h>int main(){char str1[1001], str2[1001];int t, i, len_str1, len_str2, len_max, num = 1, k;scanf("%d", &t);getchar();while(t--){int a[1001] = {0}, b[1001] = {0}, c[1001] = {0};scanf("%s", str1);len_str1 = strlen(str1);for(i = 0; i <= len_str1 - 1; ++i)a[i] = str1[len_str1 - 1 - i] - '0';scanf("%s",str2);len_str2 = strlen(str2);for(i = 0; i <= len_str2 - 1; ++i)b[i] = str2[len_str2 - 1 - i] - '0';if(len_str1 > len_str2)len_max = len_str1;elselen_max = len_str2;k = 0;for(i = 0; i <= len_max - 1; ++i){c[i] = (a[i] + b[i] + k) % 10;k = (a[i] + b[i] + k) / 10;}if(k != 0)c[len_max] = 1;printf("Case %d:\n", num);num++;printf("%s + %s = ", str1, str2);if(c[len_max] == 1)printf("1");for(i = len_max - 1; i >= 0; --i){printf("%d", c[i]);}printf("\n");if(t >= 1)printf("\n");}return 0;}Problem DescriptionGiven a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = 14.InputThe first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines follow, each line starts with a number N(1<=N<=100000), then N integers followed(all the integers are between -1000 and 1000).OutputFor each test case, you should output two lines. The first line is "Case #:", # means the number of the test case. The second line contains three integers, the Max Sum in the sequence, the start position of the sub-sequence, the end position of the sub-sequence. If there are more than one result, output the first one. Output a blank line between two cases.Sample Input25 6 -1 5 4 -77 0 6 -1 1 -6 7 -5Sample OutputCase 1:14 1 4Case 2:7 1 6注:最大子序列是要找出由数组成的一维数组中和最大的连续子序列。

acm试题及答案python

acm试题及答案python

acm试题及答案pythonACM试题及答案(Python)1. 问题描述:给定一个整数数组,请编写一个Python函数,找出数组中第二大的数。

2. 输入格式:一个包含整数的列表。

3. 输出格式:一个整数,表示数组中第二大的数。

4. 示例:- 输入:[10, 5, 8, 20, 15]- 输出:155. 答案:```pythondef find_second_max(nums):first_max = float('-inf')second_max = float('-inf')for num in nums:if num > first_max:second_max = first_maxfirst_max = numelif num > second_max and num != first_max:second_max = numreturn second_max if second_max != float('-inf') else None# 示例测试nums = [10, 5, 8, 20, 15]print(find_second_max(nums)) # 输出应为15```6. 分析:此题要求找出数组中第二大的数。

我们可以通过遍历数组,使用两个变量分别记录当前找到的最大值和第二大值。

在遍历过程中,如果当前元素比第一大的元素大,则更新第二大的元素为当前第一大的元素,并将当前元素设为第一大的元素。

如果当前元素小于第一大的元素但大于第二大的元素,则更新第二大的元素。

最后返回第二大的元素。

7. 注意:如果数组中只有一个元素或所有元素都相等,则返回`None`。

acm编程比赛题

比赛试题主办方:迅翔计算机协会【问题描述】这是一个古老而又经典的问题。

用给定的几种钱币凑成某个钱数,一般而言有多种方式。

例如:给定了6种钱币面值为2、5、10、20、50、100,用来凑15元,可以用5个2元、1个5元,或者3个5元,或者1个5元、1个10元,等等。

显然,最少需要2个钱币才能凑成15元。

你的任务就是,给定若干个互不相同的钱币面值,编程计算,最少需要多少个钱币才能凑成某个给出的钱数。

【要求】【数据输入】输入可以有多个测试用例。

每个测试用例的第一行是待凑的钱数值M(1 <= M <= 2000,整数),接着的一行中,第一个整数K(1 <= K <= 10)表示币种个数,随后是K 个互不相同的钱币面值Ki(1 <= Ki <= 1000)。

输入M=0时结束。

【数据输出】每个测试用例输出一行,即凑成钱数值M最少需要的钱币个数。

如果凑钱失败,输出“Impossible”。

你可以假设,每种待凑钱币的数量是无限多的。

【样例输入】156 2 5 10 20 50 10011 2【样例输出】2Impossible【问题描述】Felicia 的生日是11月1日(和Kitty是同一天生的哦)。

于是Feli请来Kitty一起过生日。

Kitty带来了最新款的“Kitty猫”玩具准备送给Feli,不过她说,这份礼物可不是白送的。

Feli要帮她一个忙,才能够得到心仪已久的玩具。

Kitty说,“Kitty猫”玩具已经卖出了n!个,n<=10^100 *_*,Kitty想知道确切的数字,而不是无聊的“一个数加个感叹号”。

Feli 听了大吃一惊。

要知道,算出n!是一个无比艰巨的任务。

Feli告诉Kitty,就算Feli算出n!,Kitty也看不下去,因为当n=20 时,计算机的长整型已经存不下了(Kitty只能接受1-9之间的数字)。

于是Kitty说,你只要告诉我n!最后一位非0的数就可以了。

acm数学竞赛试题及答案

acm数学竞赛试题及答案# 题目一:数列问题问题描述:给定一个数列 \( a_1, a_2, a_3, \ldots, a_n \),数列中每个元素都是正整数,且满足 \( a_i = a_{i-1} + a_{i-2} \) 对于所有\( i \geq 3 \)。

如果 \( a_1 = 1 \) 且 \( a_2 = 1 \),请找出数列的第 \( n \) 项。

解答:根据题意,这是一个斐波那契数列。

第 \( n \) 项的值可以通过递归关系计算得出。

对于 \( n \) 的值,可以使用以下递归公式:\[ a_n = a_{n-1} + a_{n-2} \]其中,\( a_1 = 1 \) 和 \( a_2 = 1 \)。

因此,数列的前几项为 1, 1, 2, 3, 5, 8, 13, 21, ...。

对于任意的 \( n \),可以通过递归或动态规划方法计算出 \( a_n \)。

# 题目二:组合问题问题描述:从 \( n \) 个不同的元素中选择 \( k \) 个元素的所有可能组合的个数是多少?解答:这个问题可以通过组合数学中的二项式系数来解决。

从 \( n \) 个不同元素中选择 \( k \) 个元素的组合数 \( C(n, k) \) 可以用以下公式计算:\[ C(n, k) = \frac{n!}{k!(n-k)!} \]其中,\( n! \) 表示 \( n \) 的阶乘。

# 题目三:几何问题问题描述:在一个直角坐标系中,给定三个点 \( A(x_1, y_1) \),\( B(x_2, y_2) \) 和 \( C(x_3, y_3) \)。

如果 \( \overrightarrow{AB} \) 和 \( \overrightarrow{AC} \) 是垂直的,求证 \( A \) 是直角三角形 \( ABC \) 的直角顶点。

解答:如果 \( \overrightarrow{AB} \) 和 \( \overrightarrow{AC} \) 垂直,那么它们的数量积(点积)应该为零。

ACM必做50题的解题-模拟

break;
}
return 1;
}
int main(){
int i,j,n;
char c;
scanf("%d",&n);
while(n--){
for(i=1; i<=3; i++)
scanf("%s %s %s",left[i],right[i],result[i]);
for(c='A'; c<='L'; c++){
1)选择合适的算法
对于每一枚硬币x逐个试探:
x比真币轻的猜测是否成立?猜测成立则进行输出。
x比真币重的猜测是否成立?猜测成立则进行输出。
2)选择合适的数据结构
以字符串数组存储称量的结果。每次称量时,天平左右最多有6枚硬币。因此,字
符串的长度需要为7,最后一位存储字符串的结束符’\0’,便于程序代码中使用字符串
{
int t,n;
cin>>t;
while(t--){
cin>>n;
int x,y;
int cross[SIZE];
memset(cross,0,sizeof(cross));
for(int i=0;i<n;++i){
cin>>x>>y;
int start,end;
if(x>y){
swapnum(x,y);
case 'u': if( strchr(left[i], x) == NULL) return 0;
break;
case 'e': if(strchr(right[i], x) != NULL || strchr(left[i], x) != NULL) return 0;

河南acm试题及答案

河南acm试题及答案河南ACM试题及答案1. 问题描述编写一个程序,计算给定整数序列中,满足条件的子序列数量。

条件为:子序列中任意两个相邻元素的差的绝对值不超过1。

2. 输入格式第一行包含一个整数N,表示序列的长度,1 <= N <= 100000。

第二行包含N个整数,表示序列中的元素,-1000000 <= 数字 <= 1000000。

3. 输出格式输出满足条件的子序列数量。

4. 样例输入```51 2 3 2 1```5. 样例输出```5```6. 问题分析本题需要对给定的整数序列进行遍历,使用动态规划的方法来计算满足条件的子序列数量。

设dp[i]表示以第i个元素结尾的满足条件的子序列数量,那么dp[i]的值可以通过dp[i-1](当前元素与前一个元素相等或相邻)和dp[i-2](当前元素与前两个元素相邻)计算得出。

7. 算法实现```pythondef countSubsequences(nums):dp = [0] * (len(nums) + 1)dp[0] = 1for i in range(1, len(nums) + 1):for j in range(i):if abs(nums[i-1] - nums[j-1]) <= 1:dp[i] += dp[j]return sum(dp)```8. 测试用例对于样例输入,程序应输出5,表示有5个满足条件的子序列。

9. 注意事项- 确保输入数据的格式正确。

- 考虑边界条件,如序列长度为1时的情况。

- 动态规划数组的大小应根据序列长度动态调整。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ACM题目、测试用例及参考答案汇编——一次ACM协会内部测试第一题:梦境是虚幻吗?时间限制:3000ms 内存限制:65535KB 难度:★★描述《盗梦空间》是一部精彩的影片,在这部电影里,Cobb等人可以进入梦境之中,梦境里的时间会比现实中的时间过得快得多,这里假设现实中的3分钟,在梦里就是1小时。

然而,Cobb他们利用强效镇静剂,可以从第一层梦境进入第二层梦境,甚至进入三层,四层梦境,每层梦境都会产生同样的时间加速效果。

那么现在给你Cobb在各层梦境中经历的时间,你能算出现实世界过了多长时间吗?比如,Cobb先在第一层梦境待了1个小时,又在第二层梦境里待了1天,之后,返回第一层梦境之后立刻返回了现实。

那么在现实世界里,其实过了396秒(6.6分钟)输入第一行输入一个整数T(0<=T<=100),表示测试数据的组数。

每组测试数据的第一行是一个数字M(3<=M<=100)随后的M行每行的开头是一个字符串,该字符串如果是"IN" 则Cobb向更深层的梦境出发了,如果是字符串"OUT"则表示Cobb从深层的梦回到了上一层。

如果是首字符串是"STAY"则表示Cobb在该层梦境中停留了一段时间,本行随后将是一个整数S表示在该层停留了S分钟(1<=S<=10000000)。

数据保证在现实世界中,时间过了整数秒。

输出对于每组测试数据,输出现实世界过的时间(以秒为单位)。

样例输入16INSTAY 60INSTAY 1440OUTOUT样例输出396测试输入106INSTAY 60INSTAY 1440OUTOUT6INININOUTOUTOUT7INININSTAY 0 OUTOUTOUT2INSTAY 203INSTAY 0 OUT3INSTAY 10 OUT4INSTAY 10 STAY 10 OUT5INSTAY 20 STAY 20 OUT STAY 120 10INSTAY 20 STAY 20 INSTAY 1440STAY 1440OUTSTAY 120OUTSTAY 11STAY 50测试输出39660306073209723000参考代码:#include<stdio.h>int main(){int n;char a[5];scanf("%d",&n);while(n--){int m,i,b=1,c,time=0;scanf("%d",&m);for(i=0;i<m;i++){scanf("%s",&a);if(a[0]=='I') b*=20;else if(a[0]=='S') {scanf("%d",&c);time+=c*60/b;} else if(a[0]=='O') b/=20;}printf("%d\n",time);}return 0;}第二题:独木舟过河时间限制:3000ms 内存限制:65535KB 难度:★★描述进行一次独木舟的旅行活动,独木舟可以在港口租到,并且之间没有区别。

一条独木舟最多只能乘坐两个人,且乘客的总重量不能超过独木舟的最大承载量。

我们要尽量减少这次活动中的花销,所以要找出可以安置所有旅客的最少的独木舟条数。

现在请写一个程序,读入独木舟的最大承载量、旅客数目和每位旅客的重量。

根据给出的规则,计算要安置所有旅客必须的最少的独木舟条数,并输出结果。

输入第一行输入s,表示测试数据的组数;每组数据的第一行包括两个整数w,n,80<=w<=200,1<=n<=300,w为一条独木舟的最大承载量,n为人数;接下来的一组数据为每个人的重量(不能大于船的承载量);输出每组人数所需要的最少独木舟的条数。

样例输入385 65 84 85 80 84 8390 390 45 60100 550 50 90 40 60样例输出533测试输入:2085 65 84 85 80 84 8390 390 45 60100 550 50 90 40 60150 1050 50 90 40 60 5 84 85 80 84112 2050 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111150 3050 88 90 78 78 79 84 85 80 84 50 99 86 40 60 5 84 85 80 111 90 96 60 42 2688 98 89 96 99199 5098 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111199 10050 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111199 20050 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 99 80 111 90 45 60 42 26 99 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111100 199100 245 56100 445 55 46 54199 20050 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 99 80 111 90 45 60 42 26 99 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111199 20050 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 99 80 111 90 45 60 42 26 99 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111199 20050 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 99 80 111 90 45 60 42 26 99 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 2560 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111199 20050 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 99 80 111 90 45 60 42 26 99 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111199 20050 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 99 80 111 90 45 60 42 26 99 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111199 20050 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 99 80 111 90 45 60 42 26 99 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111199 20050 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 99 80 111 90 45 60 42 26 99 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111199 20050 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 99 80 111 90 45 60 42 26 99 98 25 34 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 5034 46 50 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 4060 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 4650 50 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111 50 50 90 40 60 584 85 80 84 50 50 90 40 60 5 84 85 80 111 90 45 60 42 26 24 98 25 34 46 5050 90 40 60 5 84 85 80 84 50 50 90 40 60 5 84 85 80 111测试输出:533514222550100122100100100100100100100100参考代码#include <iostream>#include <cstdlib>using namespace std;int compInc(const void *a,const void *b){return *(int *)a - *(int *)b;}int main(){int s;int w,n;cin>> s;int i;int a[300];int j;int sum;int x,y;for(i=0;i<s;i++){sum = 0;cin>> w >> n;for(j=0;j<n;j++){cin>> a[j];}qsort(a,n,sizeof(int),compInc);for(x = 0,y = n-1;x < y; ){if(a[x] + a[y] <= w){x++;y--;}else{y--;}sum++;}if(x == y){sum++;}cout<< sum <<endl;}return 0;}第三题 521521ACM时间限制:1000ms 内存限制:65535KB 难度:★★★描述Acm队的小菜对数学的研究不是很透彻,但是固执的他还是想一头扎进去。

相关文档
最新文档