1. 程式人生 > 其它 >吳凡的題庫——快快程式設計301-500

吳凡的題庫——快快程式設計301-500

  1. 等腰三角形
題目描述
請寫一個程式,輸入是一個正整數n,輸出一個高度為n行的由星號*組成的等腰三角形。
輸入輸出格式
輸入格式
輸入檔案tri.in 輸出一個正整數,不超過1000。
輸出格式
輸出檔案tri.out  輸出一個等腰三角形圖形,共n層。注意行首和行末不可以有空格。
輸入輸出樣例
輸入樣例#1:
5
輸出樣例#1:
    *
   ***
  *****
 *******
*********
輸入樣例#2:

輸出樣例#2:

輸入樣例#3:

輸出樣例#3:

#include<bits/stdc++.h>
using namespace std;
int main(){
	freopen("tri.in", "r", stdin);
	freopen("tri.out", "w", stdout);
	int n;
	cin>>n;
	for(int i = 1; i <= n;i ++){
		for(int j = 0;j < n-i; j ++){
			cout<<" ";
		}
		for(int j = 1; j <= 2*i-1; j ++){
			cout<<"*";
		}
		cout<<endl;
	}
	return 0;
}
  1. 足球愛好者
題目描述
MIKE愛好踢足球,他的夢想是代表中國隊參加世界盃,所以他在放學路上經常練習踢易拉罐。在一條直線上,MIKE位置在0,共有n個易拉罐,位置在x1,x2,x3,…,xn,可能有重複,可能有負數。目標在位置m,MIKE每踢一腳,易拉罐向正方向滾10。他往正方向走,遇到每個易拉罐都踢一次,請問踢多少次才會有易拉罐的位置超過目標位置或等於目標位置。
輸入輸出格式
輸入格式
輸入第一行是正整數n和m,1<=n<=100,1<=m<=1000。第二行有n個整數,絕對值不超過10000,保證有至少一個正數。
輸出格式
輸出一個正整數。
輸入輸出樣例
輸入樣例#1:
2 22
1 2
輸出樣例#1:
4
輸入樣例#2:
無
輸出樣例#2:
無
輸入樣例#3:
無
輸出樣例#3:
無
#include<bits/stdc++.h>
using namespace std;
int n,m,ans=1;
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		int x;scanf("%d",&x);
		if(x>=m){printf("0");return 0;}
		if(x>=0)ans+=(m-1-x)/10;
	}
	printf("%d",ans);
	return 0;
}
  1. 耳聽八方
題目描述
小明能耳聽八方。給定一個5*5的棋盤,'*'表示他在棋盤中的位置,請問他能聽到的格子是哪些,請在一個棋盤上標記'#'表示他能聽到 的格子。
輸入輸出格式
輸入格式
輸入檔案ear.in 輸入5行5列的字元,沒有空格。
輸出格式
輸出檔案ear.out 輸出5行5列的字元,沒有空格。
輸入輸出樣例
輸入樣例#1:
00000
00000
00*00
00000
00000

輸出樣例#1:
00000
0###0
0#*#0
0###0
00000

輸入樣例#2:

輸出樣例#2:

輸入樣例#3:

輸出樣例#3:

#include<bits/stdc++.h>
using namespace std;
char a[7][7];
int main(){
	freopen("ear.in", "r", stdin);
	freopen("ear.out", "w", stdout);
	for(int i = 1; i <= 5; i ++)
	    for(int j = 1;j <= 5; j ++)
	        cin>>a[i][j];
	for(int i = 1; i <=5; i ++)
	    for(int j = 1; j <= 5; j ++)
	        if(a[i][j]=='*'){
	        	if(i-1>=1)    a[i-1][j]='#';
	        	if(i+1<=5)    a[i+1][j]='#';
	        	if(j-1>=1)    a[i][j-1]='#';
	        	if(j+1<=5)    a[i][j+1]='#';
	        	if(j-1>=1 && i-1>=1)    a[i-1][j-1]='#';
	        	if(j+1<=5 && i+1<=5)    a[i+1][j+1]='#';
	        	if(j-1>=1 && i+1<=5)    a[i+1][j-1]='#';
	        	if(j+1<=5 && i-1>=1)    a[i-1][j+1]='#';
			}
	for(int i = 1; i<=5; i ++){
	    for(int j = 1; j <=5; j ++)
	        cout<<a[i][j];
	    cout<<endl;
	}
	return 0;
}
  1. 測智商
題目描述
期末考試結束了,全班n個同學的成績都已經公佈,考試滿分為100分,老師推測IQ的公式很簡單,就是考試分數+30。他想知道班上有多 少同學的IQ在105以上(包括105)。
輸入輸出格式
輸入格式
第一行一個整數n,表示n個學生,n<=10000
第二行n個整數,表示成績

輸出格式
一個整數,多少人IQ不低於105
輸入輸出樣例
輸入樣例#1:
5
80 90 75 60 85
輸出樣例#1:
4
解釋說明:5個人的IQ分別為110 120 105 90 115,其中達到105共4人。
輸入樣例#2:
2
70 74

輸出樣例#2:
0
輸入樣例#3:
無
輸出樣例#3:
無
#include<iostream>
using namespace std;
int main(){
	long long n,IQ[10005],cnt;
	cin>>n;
	for(int i = 0;i<n;i++){
		cin>>IQ[i];
	}
    cnt = 0;
	for(int i = 0;i<n;i++){
		if((IQ[i] + 30) >= 105){
			cnt += 1;
		}
	}
	cout<<cnt;
	return 0;
}
  1. 最大得票差
題目描述
校園10大歌手投票結束,每位選手的得票數量統計完畢。如果得票最高歌手的票數為A,得票最少的歌手票數為B,請求出A減B有多大。說明:每位選手的編號為1到10。
輸入輸出格式
輸入格式
輸入共2行,第1行一個整數n,表示共有投票共n張
第2行,n個整數,表示每張投票上的選手編號。n不超過200000
輸出格式
輸出1行,一個整數,第一名和最後一名相差的票數
輸入輸出樣例
輸入樣例#1:
5
1 1 1 2 3
說明:5表示5張投票,其中3票都給1號選手,1票給2號選手,1票給3號選手,其他選手沒有得票,最大得票差3-0=3
輸出樣例#1:
3
輸入樣例#2:
2
3 4
輸出樣例#2:
1
輸入樣例#3:
無
輸出樣例#3:
無
#include<bits/stdc++.h>
#define N 13
using namespace std;
int tmp,cnt[N];
int main(){
	int n;cin>>n;
	for(int i=1;i<=n;i++)cin>>tmp,cnt[tmp]++;
	int mx=*max_element(cnt+1,cnt+11);
	int mn=*min_element(cnt+1,cnt+11);
  	cout<<mx-mn<<endl;
	return 0;
} 
  1. 身高查詢
題目描述
有n個人從矮到高排列,已知每個人的身高。對於給定的兩個高度a,b(a小於b),需要求四個數字:
1.      身高大於等於a並且小於等於b的人有幾個
2.      身高大於a並且小於b的人有幾個
3.      身高大於等於a並且小於b的人有幾個
4.      身高大於a並且小於等於b的人有幾個
輸入輸出格式
輸入格式
輸入檔案height.in 輸入第一行為正整數n,第二行為從小到大排列的n個浮點數(最多兩位小數),第三行為浮點數a和b(最多兩位小數)。n<=10000,所有高度<=3.00。
輸出格式
輸出檔案height.out 輸出一行,共四個整數。
輸入輸出樣例
輸入樣例#1:
3
1.20 1.99 1.99
1.20 1.99
輸出樣例#1:
3 0 1 2
輸入樣例#2:
無
輸出樣例#2:
無
輸入樣例#3:
無
輸出樣例#3:
無
#include<bits/stdc++.h>
using namespace std;
int main(){
	freopen("height.in", "r", stdin);
	freopen("height.out", "w", stdout);
	int n;
	double x[100009], a, b;
	cin>>n;
	for(int i=0;i<n;i++)cin>>x[i];
	cin>>a>>b;
	cout<<upper_bound(x, x+n, b)-lower_bound(x, x+n, a)<<" ";
	cout<<lower_bound(x, x+n, b)-upper_bound(x, x+n, a)<<" ";
	cout<<lower_bound(x, x+n, b)-lower_bound(x, x+n, a)<<" ";
	cout<<upper_bound(x, x+n, b)-upper_bound(x, x+n, a);
	return 0;
}
  1. 狙擊裝備
題目描述
你希望成為一名狙擊手(sniper),你需要的基本裝備包括一把狙擊槍和一把手槍。你的預算共m元,目前共有a種狙擊槍可以選擇,第i把售價xi元;共有b種手槍可以選擇,第j把售價yj元。請計算在你的預算範圍內,有多少種可以考慮的組合?
輸入輸出格式
輸入格式
輸入檔案 sniper.in 輸入第一行為正整數m,a,b,第二行為a個正整數代表狙擊槍價格,第三行為b個正整數代表手槍價格。m<=300000 ,a<=50000,b<=50000。
輸出格式
輸出檔案 sniper.out 輸出一個整數。
輸入輸出樣例
輸入樣例#1:
100000 2 3
97000 90000
5000 10000 3000
輸出樣例#1:
4
樣例說明:9萬的狙擊槍可以配3種手槍,9萬7的狙擊槍只可以搭配1種手槍。共4種
輸入樣例#2:
無
輸出樣例#2:
無
輸入樣例#3:
無
輸出樣例#3:
無
#include<bits/stdc++.h>
using namespace std;
int main(){
	freopen("sniper.in", "r", stdin);
	freopen("sniper.out", "w", stdout);
	int m, a, b, x[100001], y[100001];
	cin>>m>>a>>b;
	for(int i=0;i<a;i++)cin>>x[i];
	for(int i=0;i<b;i++)cin>>y[i];
	sort(y, y+b);
	int cnt=0;
	for(int i=0;i<a;i++){
		int r=m-x[i];
		cnt+=upper_bound(y, y+b, r)-y;
	}
	cout<<cnt<<endl;
	return 0;
}
  1. 特殊的三次方程
題目描述
對於一元三次方程: x^3+x^2+x=a, 它的形式很特殊,我們可以證明它的解只有一個。
輸入輸出格式
輸入格式
輸入整數a,|a|<=100
輸出格式
輸出它的唯一解,保留三位小數。
輸入輸出樣例
輸入樣例#1:
1
輸出樣例#1:
0.544
輸入樣例#2:

輸出樣例#2:

輸入樣例#3:

輸出樣例#3:

#include<bits/stdc++.h>
using namespace std;
int main(){
	double a,ans,MIN=1000;
	cin>>a;
	for(double x=-10;x<=10;x+=0.001) {
		double d=fabs(x*x*x+x*x+x-a);
		if(d<MIN) MIN=d, ans=x;
	}
	cout<<fixed<<setprecision(3)<<ans<<endl;
	return 0;
} 
  1. 高智商罪犯一
題目描述
共n個罪犯排成一排,第i個人智商為xi,現在需要將他們依次分組押運,每一組只可以安排相鄰的若干個罪犯。為防止高智商罪犯聯合逃脫,必須保證 每一組的智商總和不超過m,求最少要分幾組?如果無法完成要求輸出0。
輸入輸出格式
輸入格式
輸入檔案criminal.in
輸入第一行為正整數n和m,第二行為n個正整數xi。n<=100,m<=1000,xi<=500
輸出格式
輸出檔案criminal.out
輸出一個整數。
輸入輸出樣例
輸入樣例#1:
5 300
250 150 60 100 90
輸出樣例#1:
3
輸入樣例#2:
無
輸出樣例#2:
無
輸入樣例#3:
無
輸出樣例#3:
無
#include<bits/stdc++.h>
using namespace std;
int main(){
	freopen("criminal.in", "r", stdin);
	freopen("criminal.out", "w", stdout);
	int n, a, w[500];
	cin>>n>>a;
	for(int i=0;i<n;i++)cin>>w[i];
	for(int i=0;i<n;i++)
	    if(w[i]>a){
	    	cout<<0<<endl;
	    	return 0;
		}
	int ans=1,sum=0;
	for(int i=0;i<n;i++){
		sum+=w[i];
		if(sum>a){
			ans++;
			sum=w[i];
		}
	}
	cout<<ans;
	return 0;
}
  1. 成績
題目描述
牛牛最近學習了 C++入門課程,這門課程的總成績計算方法是: 總成績 = 作業成績 × 20% + 小測成績 × 30% + 期末考試成績 × 50%  牛牛想知道,這門課程自己最終能得到多少分。
輸入輸出格式
輸入格式
 1 行,包含三個非負整數A、B、C,分別表示牛牛的作業成績、小測成績和期末考試成績,A,B,C均是10的整數倍。相鄰兩個數之間用一 個空格隔開,三項成績滿分都是 100 分。
輸出格式
 1 行,包含一個整數,即牛牛這門課程的總成績,滿分也是 100 分。
輸入輸出樣例
輸入樣例#1:
100 100 80
輸出樣例#1:
90
輸入樣例#2:
60 90 80
輸出樣例#2:
79
輸入樣例#3:

輸出樣例#3:

#include<iostream>
using namespace std;
int a,b,c,result;
int main(){
	cin>>a>>b>>c;
	result = a * 0.2 + b * 0.3 + c * 0.5;
	cout<<result;
	return 0;
}
  1. 點石成金
題目描述
能夠點石成金是你的特異功能。在5*5的影象裡,你可以選擇點一下其中任意一格:第x行第y列。此時和這個格子相同符號並且連通的格子(上下左右四個方向連通)都會變成金色,用G表示。
輸入輸出格式
輸入格式
輸入檔案gold.in
輸入5行5列共25個字元表示目前的影象,之後輸入x和y,1<=x,y<=5。
輸出格式
輸出檔案gold.out
輸出5行5列共25個字元表示目前的影象表示點石成金的效果。
輸入輸出樣例
輸入樣例#1:
@@@+@
@+++@
@@@+@
@+@+@
@@@+@
3 3
輸出樣例#1:
GGG+@
G+++@
GGG+@
G+G+@
GGG+@
輸入樣例#2:
GGGGG
GGGGG
GGGGG
GGGGG
GGGGG
1 1
輸出樣例#2:
GGGGG
GGGGG
GGGGG
GGGGG
GGGGG
輸入樣例#3:
無
輸出樣例#3:
無
#include<bits/stdc++.h>
using namespace std;
int dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};
char ch,d[6][6];
int a,b,n=5;
void dfs(int x,int y){
	d[x][y]='G';
	for(int k=0;k<4;k++){
		int nx=x+dx[k],ny=y+dy[k];
		if(nx>=1&&nx<=n&&ny>=1&&ny<=n&&d[nx][ny]==ch)
		    dfs(nx,ny);
	}
}
int main(){
    freopen("gold.in", "r", stdin);
    freopen("gold.out", "w", stdout);
	for(int i=1;i<=n;i++)
	    for(int j=1;j<=n;j++)
	        cin>>d[i][j];
	cin>>a>>b;
	ch=d[a][b];
	if(ch!='G') dfs(a,b);
	for(int i=1;i<=n;i++){
	    for(int j=1;j<=n;j++)
	        cout<<d[i][j];
		cout<<endl;
	}
    return 0;
}
  1. 數水坑
題目描述
清明時節雨紛紛,路上都是大水坑。已知一張地面的俯檢視照片,請計算機智慧識別出有幾塊獨立的水坑。照片用n*m個畫素的點陣組成,‘.’代表幹區 ,‘@’代表有水。如果兩個‘@’是(八個方向)相鄰的,那麼他們屬於同一個水坑。
輸入輸出格式
輸入格式
輸入檔案puddle.in
輸入第一行為正整數n和m,n,m<=100。接著是n*m的字元矩陣。
輸出格式
輸出檔案puddle.out
輸出一個整數。
輸入輸出樣例
輸入樣例#1:
10 12
@........@@.
.@@@.....@@@
....@@...@@.
.........@@.
.........@..
..@......@..
.@.@.....@@.
@.@.@.....@.
.@.@......@.
..@.......@.
輸出樣例#1:
3
輸入樣例#2:
無
輸出樣例#2:
無
輸入樣例#3:
無
輸出樣例#3:
無
#include<bits/stdc++.h>
using namespace std;
const int N=109; 
int dx[8]={1,1,1,0,0,-1,-1,-1},dy[8]={1,0,-1,1,-1,1,0,-1};
char d[N][N];
int n,m;
bool vst[N][N];
void dfs(int x,int y){
	vst[x][y]=1;
	for(int k=0;k<8;k++){
		int nx=x+dx[k],ny=y+dy[k];
		if(nx>=1&&nx<=n&&ny>=1&&ny<=m&&d[nx][ny]=='@'&&!vst[nx][ny])
		    dfs(nx,ny);
	}
}
int main(){
    freopen("puddle.in", "r", stdin);
    freopen("puddle.out", "w", stdout);
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	    for(int j=1;j<=m;j++)
	        cin>>d[i][j];
	int ans=0;
	for(int i=1;i<=n;i++)
	    for(int j=1;j<=m;j++)
	        if(d[i][j]=='@'&&!vst[i][j]){
	        	ans++;
	        	dfs(i,j);
			}
	cout<<ans;
    return 0;
}
  1. 骰子識別
題目描述
玩桌遊時你的運氣總是很差,你懷疑骰子可能有問題。為了探究一個骰子投出的數字是不是在{1,2,3,4,5,6}裡均勻分佈,你造了個機器人不停地投骰子。當然你的機器人也有“視覺”,也就是一個“骰子識別”程式,自動識別投出的是幾。其中最重要的任務就是對於一張骰子單面的照片(10*10畫素),判斷這一面是幾。照片裡會有白色用‘.’表示,一些上下左右聯通的‘#’字元屬於骰子裡的同一個計數點。注意:如果一個單獨畫素點的‘#’上下左右都沒有其他‘#’相鄰時,不能夠被識別為計數點,應該被理解為灰塵/噪點。照片裡有幾個獨立的計數點就代表是骰子投的是數字幾。
輸入輸出格式
輸入格式
輸入檔案dice.in
輸入為10*10的字元矩陣。
輸出格式
輸出檔案dice.out
輸出一個整數。
輸入輸出樣例
輸入樣例#1:
.#....#...
###.#.#...
.#..###...
........#.
.##..##...
##...##...
#.........
.###.##...
.##..###..
..#......#
輸出樣例#1:
6
輸入樣例#2:
無
輸出樣例#2:
無
輸入樣例#3:
無
輸出樣例#3:
無
#include<bits/stdc++.h>
using namespace std;
const int N=19; 
int dx[4]={0,1,0,-1};
int dy[4]={1,0,-1,0};
char d[N][N];
int area;
bool vst[N][N];
void dfs(int x,int y){
	area++;
	vst[x][y]=1;
	for(int k=0;k<4;k++){
		int nx=x+dx[k],ny=y+dy[k];
		if(nx>=1&&nx<=10&&ny>=1&&ny<=10&&d[nx][ny]=='#'&&!vst[nx][ny])
		    dfs(nx,ny);
	}
}
int main(){
    freopen("dice.in", "r", stdin);
    freopen("dice.out", "w", stdout);
	for(int i=1;i<=10;i++)
	    for(int j=1;j<=10;j++)
	        cin>>d[i][j];
	int ans=0;
	for(int i=1;i<=10;i++)
	    for(int j=1;j<=10;j++)
	        if(d[i][j]=='#'&&!vst[i][j]){
	        	area=0;
	        	dfs(i,j);
	        	if(area>1)ans++;
			}
	cout<<ans;
    return 0;
}
  1. 時間複雜度
題目描述
小明正在學習一種新的程式語言 A++,剛學會迴圈語句的他激動地寫了好多程式並 給出了他自己算出的時間複雜度,可他的程式設計老師實 在不想一個一個檢查小明的程式, 於是你的機會來啦!下面請你編寫程式來判斷小明對他的每個程式給出的時間複雜度是 否正確。
A++語言的迴圈結構如下:
F i x y
    迴圈體
E
其中“F i x y”表示新建變數 (i變數 i 不可與未被銷燬的變數重名)並初始化為 x,然後判斷 i 和 y 的大小關係,若 i 小於等於 y 則進入迴圈,否則不進入。每次迴圈結束 後 i 都會被修改成 i +1,一旦 i 大於 y 終止迴圈。
x 和 y 可以是正整數(x 和 y 的大小關係不定)或變數 n。n 是一個表示資料規模的 變數,在時間複雜度計算中需保留該變數而不能 將其視為常數,該數遠大於 100。
“E”表示迴圈體結束。迴圈體結束時,這個迴圈體新建的變數也被銷燬。 注:本題中為了書寫方便,在描述複雜度時,使用大寫英文字母“O”表示通常意義下“Θ”的概念。
輸入輸出格式
輸入格式
輸入第一行一個正整數 t,表示有 t(t ≤ 10)個程式需要計算時間複雜度。 每個程式我們只需抽取其中 “F i x y”和“E”即可計算時間複雜度。注意:迴圈結構允許巢狀。
接下來每個程式的第一行包含一個正整數 L 和一個字串,L 代表程式行數,字串表示這個程式的複雜度,“O(1)”表示常數複雜度,“O(n^w)”表示複雜度為nw,其 中 w是一個小於 100 的正整數(輸入中不包含引號),輸入保證複雜度只有 O(1)和 O(n^w)
兩種型別。
接下來 L 行代表程式中迴圈結構中的“F i x y”或者 “E”。 程式行若以“F”開頭,表示進入一個迴圈,之後有空格分離的三個字元(串)i x y,其中 i 是一個小寫字母(保證不為“n”),表示新建的變數名,x 和 y 可能是正整數或n ,已知若為正整數則一定小於 100。  程式行若以“E”開頭,則表示迴圈體結束。
輸出格式
輸出共 t 行,對應輸入的 t 個程式,每行輸出“Yes”或“No”或者“ERR”(輸 出中不包含引號),若程式實際複雜度與輸入給出的複雜度 一致則輸出“Yes”,不一致 則輸出“No”,若程式有語法錯誤(其中語法錯誤只有: ① F 和 E 不匹配 ②新建的變 量與已經存在但未被銷燬的變數重複兩種情況),則輸出“ERR”。
注意:即使在程式不會執行的迴圈體中出現了語法錯誤也會編譯錯誤, 要輸出 “ERR”。
輸入輸出樣例
輸入樣例#1:
8
2 O(1)
F i 1 1 E
2 O(n^1)
F x 1 n E
1 O(1)
F x 1 n 4 O(n^2)
F x 5 n F y 10 n E
E
4 O(n^2)
F x 9 n E
F y 2 n E
4 O(n^1)
F x 9 n F y n 4 E
E
4 O(1)
F y n 4 F x 9 n E
E
4 O(n^2)
F x 1 n F x 1 10 E
E
輸出樣例#1:
Yes
Yes
ERR
Yes
No
Yes
Yes
ERR
輸入樣例#2:
無
輸出樣例#2:
無
輸入樣例#3:
無
輸出樣例#3:
無
#include<bits/stdc++.h>
#define ll long long
#define rint register int
using namespace std;
stack<int> zhan;
int main(){
    int t;scanf("%d",&t);
    while(t--){
        int n;scanf("%d",&n);
    	int nowline=0,pos=0;
    	int Fcnt=0,Ecnt=0,cnt=0;
        int hisans=0,myans=0;
        int runflag=-1;
    	bool endflag=false;
        string tmp;cin>>tmp;
        string sublist="0";
        for(rint i=0;i<tmp.length();++i)
            if(tmp[i]>='0'&&tmp[i]<='9'){
                hisans+=tmp[i]-'0';
                hisans*=10;
            }
        hisans/=10;
        if(tmp[2]=='1') hisans=0;
        for(rint i=1;i<=n;++i){
            string sub,opt,tmpsta,tmpend;
            int sta=0,end=0;
            cin>>opt;
            if(opt=="F"){
            	++Fcnt;++pos;
                zhan.push(pos);
                cin>>sub>>tmpsta>>tmpend;
                if(tmpend[0]=='n'&& (!(tmpsta[0]=='n'&&tmpend[0]=='n'))) ++cnt;
                for(rint j=0;j<tmpsta.length();++j){
                    sta+=tmpsta[j]-'0';
                    sta*=10;
                }
                sta/=10;
                if(tmpend[0]!='n'){//如果end是數字 
                    for(rint i=0;i<tmpend.length();++i){
                        end+=tmpend[i]-'0';
                        end*=10;
                    }
                    end/=10;
                    if(sta>end)//如果迴圈不能執行 
                        runflag=pos;
                }
                if(runflag==-1||pos<runflag) myans=max(myans,cnt);
                sublist+=sub;
                if(sublist.find(sub)!=sublist.length()-1){
                	printf("ERR\n");cnt=0;nowline=i;endflag=true;break;
                }
                sta=0;end=0;
            }
            else if(opt=="E"){
            	--cnt;++Ecnt;
                if(zhan.empty()&&!endflag){
            		printf("ERR\n");cnt=0;nowline=i;endflag=true;break;
                }
                if(zhan.top()<=runflag){
                	pos=0;
                	runflag=-1;
                }
                if(!zhan.empty()) zhan.pop();
                if(sublist.length()>0) sublist=sublist.substr(0,sublist.length()-1);
            	if(zhan.empty()) cnt=0;
            }
        }
        if(endflag){
        	cnt=0;
        	while(!zhan.empty())
        		zhan.pop();
        		string cnm;
        	for(rint i=1;i<=n-nowline+1;++i) getline(cin,cnm);
        	continue;
        }
        if(Fcnt!=Ecnt){
        	if(!endflag) printf("ERR\n");
        	while(!zhan.empty()) zhan.pop();
        	cnt=0;
        	continue;
        }
        while(!zhan.empty()) zhan.pop(); 
        if(!endflag){
        	if(myans==hisans) printf("Yes\n");
        	else printf("No\n");
        }
        myans=hisans=0;
    }
    return 0;
}
  1. 珠心算測驗
題目描述
珠心算是一種通過在腦中模擬算盤變化來完成快速運算的一種計算技術。珠心算訓練,既能夠開發智力,又能夠為日常生活帶來很多便利,因而在很多學校得到普及。 某學校的珠心算老師採用一種快速考察珠心算加法能力的測驗方法。他隨機生成一個正整數集合,集合中 的數各不相同,然後要求學生回答:其中有多少個數,恰好等於集合中另外兩個(不同的)數之和? 最近老師出了一些測驗題,請你幫 忙求出答案。
輸入輸出格式
輸入格式
輸入檔案quiz.in 輸入共兩行,第一行包含一個整數n,表示測試題中給出的正整數個數。第二行有n個正整數,每兩個正整數之間用一個空格隔開,表示測試題中給出的正整數。
說明: 3 ≤ n ≤ 100,測驗題給出的正整數大小不超過10000。
輸出格式
輸出檔案quiz.out 輸出共一行,包含一個整數,表示測驗題答案。
輸入輸出樣例
輸入樣例#1:
4
1 2 3 4
輸出樣例#1:
2
輸入樣例#2:
5
1 9 3 7 10
輸出樣例#2:
1
輸入樣例#3:

輸出樣例#3: