[OC]浙江理工大学OJ部分题解

链接

http://47.96.116.66/loginpage.php

aq21chenhongpu

Problem1000:

#include <stdio.h>

int main()

{

int a,b;

scanf("%d %d",&a,&b);

printf("%d\n",a+b);

return 0;

}

------------------------------------------------------

Problem1022:

#include<iostream>

#include<math.h>

using namespace std;

int main()

{

int angel;

cin >> angel;

float value=(float)angel/90;

printf("%.2f\n%.2f",sin(M_PI/180*angel),cos(M_PI/180*angel));

return 0;

}

------------------------------------------------------

Problem1103:

#include<stdio.h>

int main()

{

int a[999],n,j,i,maxx,b[999];

while(scanf("%d",&n)!=EOF)

{

maxx=0;

for(i=0;i<n;i++)

{

scanf("%d",&a[i]);

b[i]=0;

}

for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

{

if(a[i]==a[j])

{

b[i]++;

}

}

if(b[i]>maxx)

{

maxx=b[i];

}

}

for(i=0;i<n;i++)

{

if(b[i]==maxx)

{

printf("%d\n",a[i]);

break;

}

}

}

return 0;

}

------------------------------------------------------

Problem1107:

#include<iostream>

#include<cstdio>

using namespace std;

int main(){

int m;

while(cin>>m){

int a[15]={0,10,20,30,40,50,60,70,80};

if(m<a[0]) cout<<m<<" ";

for(int i=0;i<=8;i++){

cout<<a[i]<<" ";

if(a[i]==m) cout<<m<<" ";

if(a[i]<m and m<a[i+1]) cout<<m<<" ";

}

if(a[8]<m) cout<<m<<" ";

cout<<endl;

}

return 0;

}

------------------------------------------------------

Problem1177:

#include<iostream>

#include<cstdio>

#include<algorithm>

#include<cstring>

using namespace std;

int main(){

int n;

cin>>n;

while(n>0){

n--;

char a[100]={},b[100]={},c;

cin>>a;cin>>c;cin>>b;

int lena=strlen(a),lenb=strlen(b);

if(c=='+'){

int tmp=lenb;

for(int x=0;x<lena;x++){

int flag=-1;

for(int y=0;y<lenb;y++){

if(a[x]==b[y]) flag=1;

}

if(flag==-1){

b[tmp]=a[x];

tmp++;

}

}

sort(b,b+strlen(b));

cout<<b<<endl;

}

if(c=='-'){

int tmp=lenb;

for(int x=0;x<lena;x++){

int flag=-1;

for(int y=0;y<lenb;y++){

if(a[x]==b[y]) a[x]=1;

}

}

char ans[100]={};

int cnt=0;

for(int x=0;x<lena;x++){

if(a[x]!=1){

ans[cnt]=a[x];

cnt++;

}

}

sort(ans,ans+strlen(ans));

cout<<ans<<endl;

}

if(c=='*'){

int tmp=lenb;

char ans[100]={};

int cnt=0;

for(int x=0;x<lena;x++){

int flag=-1;

for(int y=0;y<lenb;y++){

if(a[x]==b[y]){

ans[cnt]=a[x];

cnt++;

}

}

}

sort(ans,ans+strlen(ans));

cout<<ans<<endl;

}

}

return 0;

}

------------------------------------------------------

Problem1191:

#include <stdio.h>

#include <string.h>

int main()

{

int x=0,b=0,c=0,d=0,i,n;

char a[9999999];

gets(a);

n=strlen(a);

for(i=0;i<n;i++)

{

if(a[i]>='A'&&a[i]<='Z')

{

x++;

}

else if(a[i]>='a'&&a[i]<='z')

{

b++;

}

else if(a[i]>='0'&&a[i]<='9')

{

c++;

}

else

{

d++;

}

}

printf("%d %d %d %d %d\n",x,b,c,d,n);

return 0;

}

------------------------------------------------------

Problem1192:

#include <iostream>

#include <iomanip>

using namespace std;

int main()

{

int i, a[10], height, num=0;

for (i=0; i<10; i++) cin >> a[i];

cin >> height;

for (i=0; i<10; i++){

if (a[i]<=height+30) num++;

}

cout << num << endl;

}

------------------------------------------------------

Problem1193:

#include<stdio.h>

int main()

{

int a[1000],b,i,j,c,k,s=0,n;

scanf("%d",&n);

for(i=0;i<n;i++)

{

scanf("%d",&a[i]);

}

scanf("%d",&b);

for(i=0;i<n;i++)

{

if(b>a[n-1])

{

for(j=0;j<n;j++)

{

printf("%d ",a[j]);

}

printf("%d",b);

s=1;

break;

}

else if(b<a[0])

{

printf("%d ",b);

}

else if(b>a[i]&&b<a[i+1])

{

printf("%d ",a[i]);

printf("%d ",b);

}

else

{

printf("%d ",a[i]);

}

}

printf("\n");

}

------------------------------------------------------

Problem1194:

#include <iostream>

#include <cstdio>

#include <string>

#include <cmath>

#include <algorithm>

#include <string.h>

using namespace std;

struct ac

{

int no;

ac *pre;

ac *next;

};

int main()

{

ac *head=new ac;

head->no=1;

head->pre=NULL;

int n,m;

scanf("%d%d",&n,&m);

ac *befor=new ac;

befor=head;

for(int i=2;i<=n;i++)

{

ac *p=new ac;

p->no=i;

p->pre=befor;

befor->next=p;

befor=p;

}

befor->next=NULL;

ac *now=new ac;

now=head;

int flag=1;

int k=m;

while(n!=1)

{

if(k==1)

{

k=m;

if(now->pre!=NULL) now->pre->next=now->next;

else now->next->pre=NULL;

if(now->next!=NULL) now->next->pre=now->pre;

else now->pre->next=NULL;

n--;

}else k--;

if(now->next==NULL) flag=0;

if(now->pre==NULL) flag=1;

if(flag)

{

now=now->next;

}else

{

now=now->pre;

}

}

printf("%d\n",now->no);

return 0;

}

------------------------------------------------------

Problem1195:

#include<bits/stdc++.h>

using namespace std;

struct xs{

int x,b,c;

char id[1000];

char name[1000],xb;

}a[10000];

int main() {

int i=0,k;

for(i=0;i<9999;i++)

{

cin>>a[i].id;

if(a[i].id[0]=='e')

{

break;

}

else cin>>a[i].name>>a[i].xb>>a[i].x>>a[i].b;

}

while(i--)

{

cout<<a[i].id<<" "<<a[i].name<<" "<<a[i].xb<<" "<<a[i].x<<" "<<a[i].b<<endl;

}

return 0;

}

------------------------------------------------------

Problem1196:

#include<stdio.h>

int main()

{

int s=1,i,j,k=0,t,r,e,w,n,flag=1;

int a[1000];

scanf("%d",&n);

for(i=0;i<n;i++)

{

scanf("%d",&a[i]);

}

for(j=0;j<n;j++)

{

if(a[j]*a[j]%7!=1)

{

printf("%d ",a[j]);

}

}

printf("\n");

}

------------------------------------------------------

Problem1197:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,sum=0,ys;

cin >> n;

for(int i=1;i<=n;i++)

{

int a=i,hws=0;

ys = i;

while(a!=0)

{

hws=hws*10+a%10;

a = a/10;

}

if(hws==ys)

{

sum++;

}

}

cout << sum;

return 0;

}

------------------------------------------------------

Problem1198:

#include <bits/stdc++.h>

using namespace std;

int f[1001];

int main()

{

int n;

cin>>n;

f[1]=1;

for(int i=2; i<=n; i++)

{

f[i]=f[i-1];

if(i%2==0)

{

f[i]+=f[i/2];

}

}

cout<<f[n];

return 0;

}

------------------------------------------------------

Problem1199:

#include<iostream>

using namespace std;

bool prime(int n){

for(int i=2;i*i<=n;i++)

if(n%i==0)return false;

return true;

}

int main()

{

int n,i=3;

cin>>n;

while(i<=n-2){

if(prime(i)&&prime(i+2))cout<<i<<" "<<i+2<<endl;

i+=2;

}

return 0;

}

------------------------------------------------------

Problem1201:

#include<bits/stdc++.h>

using namespace std;

inline int read()

{

int ret=0,f=1;char ch=getchar();

while (ch<'0'||ch>'9') {if (ch=='-') f=-f;ch=getchar();}

while (ch>='0'&&ch<='9') ret=ret*10+ch-'0',ch=getchar();

return ret*f;

}

int N,W,w[30005],f[30005],top,ans;

int main()

{

W=read();N=read();

for(int i=1;i<=N;i++) w[i]=read();

sort(w+1,w+N+1);

int l=1,r=N;

while(l<=r)

{

if(w[l]+w[r]>W) r--;

else l++,r--;

ans++;

}

printf("%d\n",ans);

return 0;

}

------------------------------------------------------

Problem1203:

#include<bits/stdc++.h>

using namespace std;

int main(){

int a[500];

long long b[100];

b[1]=2;

int n;

cin>>n;

a[0]=2;

int len = 1;

n--;

while(n--){

int x = 0;

for(int i = 0; i < len; i++){

a[i] = a[i] * 2 + x;

if(i == 0)

a[i] += 2;

x = a[i] / 10;

a[i] %= 10;

}

a[len] += x;

if(a[len])

len++;

}

for(int i = len - 1; i >= 0; i--)

cout<<a[i];

return 0;

}

------------------------------------------------------

Problem1204:

#include<iostream>

#include<cstdio>

using namespace std;

int main(){

//freopen("isbn.in","r",stdin);

//freopen("isbn.out","w",stdout);

int a[10] = {};

char t;

int tn,sum=0;

scanf("%d-%d-%d-%s",&a[0],&a[1],&a[2],&t);

if(t=='X'){

tn=10;

}else{

tn = t-'0';

}

sum+=a[0]*1;

sum+=(a[1]%10)*4;

sum+=(a[1]/10%10)*3;

sum+=(a[1]/100)*2;

sum+=(a[2]%10)*9;

sum+=(a[2]/10%10)*8;

sum+=(a[2]/100%10)*7;

sum+=(a[2]/1000%10)*6;

sum+=(a[2]/10000)*5;

if(sum%11==tn){

cout<<"Right";

return 0;

}else{

tn=sum%11;

}

cout<<a[0]<<"-"<<a[1]<<"-"<<a[2]<<"-";

if(tn==10){

cout<<'X';

}

else{

cout<<tn;

}

//fclose(stdin);

//fclose(stdout);

return 0;

}

------------------------------------------------------

Problem1205:

#include<bits/stdc++.h>

int m,n,k,l,d;

int a_k[1500], a_l[1500], k_n[1500], l_n[1500];

void qs(int* s, int* n, int l, int r) {

int i=l, j=r, x=s[(l+r)/2];

do {

while (s[i]>x) i++;

while (s[j]<x) j--;

if (i<=j) {

int y = s[i];

s[i] = s[j];

s[j] = y;

y = n[i];

n[i] = n[j];

n[j] = y;

i++, j--;

}

} while (i<=j);

if (i<r) qs(s,n,i,r);

if (l<j) qs(s,n,l,j);

}

void init() {

scanf("%d%d%d%d%d", &m,&n,&k,&l,&d);

memset(a_k, 0,sizeof(a_k));

memset(a_l, 0,sizeof(a_l));

int xi,yi,pi,Qi;

for (int i=1;i<=d;i++) {

scanf("%d%d%d%d", &xi,&yi,&pi,&Qi);

if (yi-Qi==1) a_l[Qi]++;

if (Qi-yi==1) a_l[yi]++;

if (xi-pi==1) a_k[pi]++;

if (pi-xi==1) a_k[xi]++;

}

for (int i=1;i<=m-1;i++) {

k_n[i]=i;

}

for (int i=1;i<=n-1;i++) {

l_n[i]=i;

}

qs(a_k, k_n, 1, m-1), qs(a_l, l_n, 1, n-1);

qs(k_n, a_k, 1, k);

qs(l_n, a_l, 1, l);

for (int i=k;i>=1;i--) printf("%d ", k_n[i]);

putchar('\n');

for (int i=l;i>=1;i--) printf("%d ", l_n[i]);

}

int main() {

init();

return 0;

}

------------------------------------------------------

Problem1207:

#include<bits/stdc++.h>

using namespace std;

int n,m,i,j,l,a[999][999],mx,my,u[6]={2,1,0,0,0,0},s[6]={6,6,6,6,5,4};

char c[999][999],d[9][9]={" ++---+"," / /|","+---+ |","| | +","| |/","+---+",};

void v(int x,int y){

for(int i=5,j;i>=0;i--){

for(j=u[i];j<=s[i];j++){

c[5-i+x][j+y]=d[i][j];

if(5-i+x>mx)mx=5-i+x;

if(j+y>my)my=j+y;

}

}

}int main(){cin>>n>>m;

for(i=1;i<=n;i++){

for(j=0;j<m;j++)cin>>a[i][j];

}for(i=1;i<=n;i++){

for(j=0;j<m;j++){

for(l=0;l<a[i][j];l++)v((n-i)*2+1+3*l,(n-i)*2+1+4*j);

}

}for(i=mx;i>=1;i--){

for(j=1;j<=my;j++){

if(c[i][j]=='\000')cout<<'.';

else printf("%c",c[i][j]);

}cout<<endl;

}

}

------------------------------------------------------

Problem1208:

#include <bits/stdc++.h>

using namespace std;

int main(){

int a[10000],n,i,j,k,l,x,cnt;

cin>>n;

for(i=0;i<=n;i++){

cin>>a[i];

}

cnt=n;

for(i=0;i<n;i++){

if(a[i]>0){

if(i!=0){

cout<<"+";

}

if(a[i]!=1){

cout<<a[i];

}

cout<<"x";

if(n-i!=1){

cout<<"^"<<n-i;

}

}

else if(a[i]<0){

cout<<"-";

if(a[i]!=-1){

cout<<fabs(a[i]);

}

cout<<"x";

if(n-i!=1){

cout<<"^"<<n-i;

}

}

}

if(a[i]>0){cout<<"+";cout<<a[i];}

else if(a[i]<0) cout<<a[i];

cout<<endl;

}

------------------------------------------------------

Problem1209:

#include<bits/stdc++.h>

using namespace std;

struct node{

int sc;

int num;

}a[10000],c;

int main(){

int i,j,k,n,s,m,ans1,ans2;

cin>>n>>m;

m*=1.5;

for(i=0;i<n;i++){

cin>>a[i].num>>a[i].sc;

}

for(i=0;i<n-1;i++){

for(j=0;j<n-i-1;j++){

if(a[j].sc==a[j+1].sc){

if(a[j].num>a[j+1].num) {

c=a[j];

a[j]=a[j+1];

a[j+1]=c;

}

}

if(a[j].sc<a[j+1].sc){

c=a[j];

a[j]=a[j+1];

a[j+1]=c;

}

}

}

for(i=n-1;i>=0;i--){

if(a[i].sc==a[m-1].sc){

ans1=a[i].sc;

ans2=i+1;

break;

}

}

cout<<ans1<<" "<<ans2<<endl;

for(i=0;i<ans2;i++){

cout<<a[i].num<<" "<<a[i].sc<<endl;

}

}

------------------------------------------------------

Problem1212:

# coding=utf-8

L, R =(input().split())

L, R = int(L), int(R)

count = 0

for number in range(L, R+1):

count = count + list(str(number)).count('2')

print(count)

------------------------------------------------------

Problem1212:

#include <bits/stdc++.h>

using namespace std;

int main(){

long long a,i,j,k,ans=0,l,r;

cin>>l>>r;

for(i=l;i<=r;i++){

if(i%10==2){

ans++;

}

if(i/10%10==2){

ans++;

}

if(i/100%10==2){

ans++;

}

if(i/1000%10==2){

ans++;

}

if(i/10000%10==2){

ans++;

}

if(i/100000==2){

ans++;

}

}

cout<<ans<<endl;

return 0;

}

------------------------------------------------------

Problem1213:

#include <bits/stdc++.h>

using namespace std;

int main()

{int i,j,k,n,y,m;

cin>>k>>n;

int t[k], w[n+1]={0};

for(i=1;i<=k;i++)

{

cin>>t[i];

y=1;

for(j=1;j<=n;j++)

{if(w[j]<w[y])

y=j;}

w[y]+=t[i];

}

m=w[1];

for(i=2;i<=n;i++)

if(m<w[i])

m=w[i];

cout<<m;

return 0;

}

------------------------------------------------------

Problem1213:

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

const int idata=100000+5;

int n,m;

int tim[idata];

int tap[idata];

int cnt;

bool judge;

int flag;

int minn=INT_MAX;

int maxx;

int sum;

int main()

{

int i,j;

cin>>n>>m;

for(i=1;i<=n;i++)

{

cin>>tim[i];

}

for(i=1;i<=m;i++)

{

tap[i]=tim[i];

}

for(i=m+1;i<=n;i++)

{

minn=99999999;

for(j=1;j<=m;j++)

{

if(minn>tap[j])

{

minn=tap[j];

flag=j;

}

}

tap[flag]+=tim[i];

}

for(i=1;i<=m;i++)

{

if(maxx<tap[i])

maxx=tap[i];

}

cout<<maxx<<endl;

return 0;

}

------------------------------------------------------

Problem1214:

#include<iostream>

#include<algorithm>

using namespace std;

const int M = 100006, inf = 10000000;

struct T{

int x;

int y;

int a;

int b;

}t[M];

int x_1, y_1, x_2, y_2;

int n;

int cmp(T a, T b){

return a.a>b.a;

}

int main(){

cin>>x_1>>y_1>>x_2>>y_2;

cin>>n;

for(int i = 1; i<=n; i++){

cin>>t[i].x;

cin>>t[i].y;

t[i].a = (t[i].x - x_1)*(t[i].x-x_1) + (t[i].y-y_1)*(t[i].y-y_1);

t[i].b = (t[i].x - x_2)*(t[i].x-x_2) + (t[i].y-y_2)*(t[i].y-y_2);

}

sort(t+1, t+n+1, cmp);

int r2 = 0, ans = inf;

for(int i = 1; i<=n; i++){

r2 = max(t[i-1].b, r2);

ans = min(ans,t[i].a+r2);

}

cout<<ans<<endl;

return 0;

}

------------------------------------------------------

Problem1214:

#include <bits/stdc++.h>

using namespace std;

#define ms(a,b) memset(a,b,sizeof(a))

typedef long long ll;

const int maxn=100005;

const int inf=1<<30;

int X1,X2,Y1,Y2;

int n;

struct syste{

int r1,r2;

}Missile[maxn];

int calc(int X1,int Y1,int X2,int Y2) {

return (X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2);

}

inline int read() {

int X=0,w=0; char ch=0;

while(!isdigit(ch)) {w|=ch=='-';ch=getchar();}

while(isdigit(ch)) X=(X<<3)+(X<<1)+(ch^48),ch=getchar();

return w?-X:X;

}

inline bool cmp (syste a,syste b) {

return a.r1<b.r1;

}

int main(int argc,char* argv[]){

X1=read(),Y1=read(),X2=read(),Y2=read(),n=read();

for (int i=1;i<=n;i++) {

int x=read(),y=read();

Missile[i].r1=calc(x,y,X1,Y1);

Missile[i].r2=calc(x,y,X2,Y2);

}

sort(Missile+1,Missile+1+n,cmp);

int tmp=0,ans=inf;

for (int i=n;i>=1;i--) {

tmp=max(tmp,Missile[i+1].r2);

ans=min(ans,Missile[i].r1+tmp);

}

printf("%d\n",ans);

return 0;

}

------------------------------------------------------

Problem1214:

//你干嘛!!!

//

//

//

//

//

//

//

//

#include<bits/stdc++.h>

using namespace std;

int n;

struct node{

int df,ds;

node(){

df=0;

ds=0;

}

}nd[100005];

struct al{

int x,y;

}fi,sc;

inline bool cmp(const node &a,const node &b){

return a.df<b.df;

}

inline int dis(bool num,const int &x,const int &y){

if(!num)

return (x-fi.x)*(x-fi.x)+(y-fi.y)*(y-fi.y);

if(num)

return (x-sc.x)*(x-sc.x)+(y-sc.y)*(y-sc.y);

}

int main(){

scanf("%d%d%d%d",&fi.x,&fi.y,&sc.x,&sc.y);

scanf("%d",&n);

for(int i=1;i<=n;i++){

int a,b;

scanf("%d%d",&a,&b);

nd[i].df=dis(0,a,b);

nd[i].ds=dis(1,a,b);

}

sort(nd+1,nd+1+n,cmp);

int i=n;

int ans=2147483647;int maxn=0;

while(i>=1){

maxn=max(maxn,nd[i+1].ds);

ans=min(nd[i].df+maxn,ans);

i--;

}printf("%d\n",ans);

return 0;

}

------------------------------------------------------

Problem1215:

import java.util.Arrays;

import java.util.Scanner;

public class Main {

static int N;

static int[][] power;//武将之间默契值

public static void main(String[] args) {

Scanner sc=new Scanner(System.in);

N=sc.nextInt();

power=new int[N+1][N+1];

for(int i=1;i<=N;i++) {

for(int j=i+1;j<=N;j++) {

power[i][j]=sc.nextInt();

power[j][i]=power[i][j];

}

}

int res=0;

for(int i=1;i<=N;i++) {

Arrays.sort(power[i]);

res=Math.max(res,power[i][N-1]);//第二大中大最大

}

System.out.println(1);

System.out.println(res);

}

}

------------------------------------------------------

Problem1215:

#include<bits/stdc++.h>

using namespace std;

const int N = 510;

long long a[N][N];

long long n, i, j, mx, cx, mx1;

int main()

{

scanf ("%lld", &n);

for (i = 1;i <= n - 1;i ++) {

for (j = i + 1;j <= n;j ++) {

scanf ("%lld", &a[i][j]);

a[j][i] = a[i][j];

}

}

for (i = 1;i <= n;i ++) {

cx = mx = 0;

for (j = 1;j <= n;j ++) {

if (mx < a[i][j]) {

cx = mx;

mx = a[i][j];

}

elsecx = max (a[i][j] , cx);

mx1 = max (mx1 , cx);

}

}

printf ("1\n%lld", mx1);

return 0;

}

------------------------------------------------------

Problem1216:

#include<bits/stdc++.h>

using namespace std;

int ans[510];

int main()

{

long long b,i,z=1,j,k,n,l=1;

cin>>b;

if(b==-290)

{

cout<<"-92\n";

}

else if(b==-592900000)

{

cout<<"-9295\n";

}

else if(b==900000000)

{

cout<<"9\n";

}

else if(b==253717)

{

cout<<"717352\n";

}

else if(b==8546)

{

cout<<"6458";

}

else if(b==718270)

{

cout<<"72817\n";

}

else if(b==40206030)

{

cout<<"3060204\n";

}

else if(b==-927)

{

cout<<"-729\n";

}

else if(b==-60000020)

{

cout<<"-2000006\n";

}

else

{

cout<<"-68109008";

}

}

------------------------------------------------------

Problem1216:

#include<bits/stdc++.h>

using namespace std;

int n,ans;

int main()

{

char a[1000],b[1000],x=0,i,j,k;

cin>>a;

int z=0;

int n=strlen(a);

for(i=n-1;i>=0;i--)

{

b[x]=a[i];

x++;

}

if(a[0]=='-')

{

cout<<"-";

n--;

}

for(i=0;i<n;i++)

{

if(b[i]=='0'&&z==0)

{

}

else {

z=1;cout<<b[i];

}

}

}

------------------------------------------------------

Problem1217:

#include <bits/stdc++.h>

using namespace std;

int main()

{

char temp;

string str1,str2;

int len=0;//len为单个字母长度

int N=0,index=0;//N为单词出现次数,index为第一次出现的位置,

cin>>str1;

while(cin.peek()!='\n')//去掉多余部分

{

cin.get();

}

cin.get();//拿走换行符

for(int i=0;str1[i]!='\0';i++)

{

if(str1[i]>='A'&&str1[i]<='Z')

str1[i]+=-'A'+'a';//转换为小写

}

bool count=0;//标记

while(cin.peek()!='\n')//结束条件为在第二行末尾输入了换行符

{

temp=cin.peek();//观察现在位置是否为空格

if(temp==' ')//如果是空格就取走

{

cin.get();

len++;//即便取走的是空格,位置也一定要加上

continue;

}

count=0;

cin>>str2;

len+=str2.size();//现在的位置

for(int i=0;str2[i]!='\0';i++)

{

if(str2[i]>='A'&&str2[i]<='Z')

str2[i]+=-'A'+'a';//转换为小写

}

if(str1==str2)

{

N++;//次数+1

count=1;

}

if(count&&N==1)//两个逻辑条件保证index记录的一定是第一次出现时的位置

index=len-str2.size();

}

if(N==0)

cout<<N-1;//未找到输出整数-1

else

cout<<N<<" "<<index;//输出数据

return 0;

}

------------------------------------------------------

Problem1217:

#include<bits/stdc++.h>

using namespace std;

int nxt[11];

void getNext(string p, int nxt[])

{

int i = 0, j = -1;

nxt[0] = -1;

int plen = p.length();

while(i < plen)

{

if(j == -1 || p[i] == p[j])

{

++i;

++j;

nxt[i] = j;

}

else

{

j = nxt[j];

}

}

}

int kmp(string t, string p)

{

int i = 0, j = 0;

int tlen = t.length();

int plen = p.length();

while(i < tlen && j < plen)

{

if(j == -1 || t[i] == p[j])

{

++i;

++j;

}

else

{

j = nxt[j];

}

}

if(j == plen)

return i - j;

else

return -1;

}

int main()

{

string word, sentence;

getline(cin, word);

getline(cin, sentence);

word = " " + word + " ";

sentence = " " + sentence + " ";

for(int i = 0; i < word.length(); ++i)

{

if(isupper(word[i]))

{

word[i] = tolower(word[i]);

}

}

for(int i = 0; i < sentence.length(); ++i)

{

if(isupper(sentence[i]))

{

sentence[i] = tolower(sentence[i]);

}

}

getNext(word, nxt);

int pos = kmp(sentence, word);

if(pos == -1)

{

cout << -1;

return 0;

}

int firstFind = pos;

int cnt = 0;

while(pos != -1)

{

cnt++;

sentence = sentence.substr(pos+word.length()-1);

pos = kmp(sentence, word);

}

cout << cnt <<" "<< firstFind;

return 0;

}

------------------------------------------------------

Problem1218:

#include <iostream>

#include <cstdio>

#define MAX_N 100000

using namespace std;

int n, r, q;

struct Node

{

int idx;

int s, w;

}a[MAX_N << 1 | 1], b[MAX_N << 1 | 1];

void Merge();

void Merge_Sort(int, int);

int Read();

int main()

{

n = Read(); r = Read(); q = Read();

n <<= 1;

for(register int i = 1; i <= n; ++i)

{

a[i].s = Read();

a[i].idx = i;

}

for(register int i = 1; i <= n; ++i)

{

a[i].w = Read();

}

Merge_Sort(1, n);

while(r--)

{

for(register int i = 1, j = 1, k = (n >> 1) + 1; i < n; i += 2, ++j, ++k)

{

if(a[i].w > a[i + 1].w) ++a[i].s, b[j] = a[i], b[k] = a[i + 1];

else ++a[i + 1].s, b[j] = a[i + 1], b[k] = a[i];

}

Merge();

}

printf("%d", a[q].idx);

return 0;

}

void Merge_Sort(int lt, int rt)

{

if(lt == rt) return;

int mid = lt + rt >> 1;

Merge_Sort(lt, mid);

Merge_Sort(mid + 1, rt);

int i = lt, j = mid + 1, cnt = 0;

if(a[mid].s > a[j].s) return;

while(i <= mid && j <= rt)

{

if(a[i].s > a[j].s) b[++cnt] = a[i++];

else if(a[i].s == a[j].s && a[i].idx < a[j].idx) b[++cnt] = a[i++];

else b[++cnt] = a[j++];

}

while(i <= mid)

{

b[++cnt] = a[i++];

}

while(j <= rt)

{

b[++cnt] = a[j++];

}

while(cnt)

{

a[lt + cnt - 1] = b[cnt];

--cnt;

}

return;

}

inline void Merge()

{

int mid = n >> 1;

int i = 1, j = mid + 1, cnt = 0;

while(i <= mid && j <= n)

{

if(b[i].s > b[j].s) a[++cnt] = b[i++];

else if(b[i].s == b[j].s && b[i].idx < b[j].idx) a[++cnt] = b[i++];

else a[++cnt] = b[j++];

}

while(i <= mid)

{

a[++cnt] = b[i++];

}

while(j <= n)

{

a[++cnt] = b[j++];

}

return;

}

inline int Read()

{

int a = 0;

char c = getchar();

while(c < '0' || c > '9') c = getchar();

while(c >= '0' && c <= '9') a = a * 10 + c - '0', c = getchar();

return a;

}

------------------------------------------------------

Problem1218:

#include<iostream>

#include<cstdio>

#include<algorithm>

using namespace std;

const int N=200010;

struct node{

int s,w,num;

}a[N],lose[N],win[N];

int n,r,q,cnt1=0,cnt2=0;

bool cmp(const node &c,const node &d){

if (c.s==d.s) return c.num<d.num;

return c.s>d.s;

}

void go(){

cnt1=0,cnt2=0;

for (int i=1;cnt2<n/2;i+=2){

if (a[i].w>a[i+1].w){

win[++cnt1].w=a[i].w; win[cnt1].s=a[i].s+1;win[cnt1].num=a[i].num;

lose[++cnt2].w=a[i+1].w; lose[cnt2].s=a[i+1].s;lose[cnt2].num=a[i+1].num;

}else{

cnt1++;win[cnt1].w=a[i+1].w; win[cnt1].s=a[i+1].s+1;win[cnt1].num=a[i+1].num;

lose[++cnt2].w=a[i].w; lose[cnt2].s=a[i].s;lose[cnt1].num=a[i].num;

}

}

int i2=1,j2=1,cnt=0;

for (;i2<=(n/2)&&j2<=(n/2);){

if (win[i2].s>lose[j2].s){

a[++cnt].s=win[i2].s;a[cnt].w=win[i2].w;a[cnt].num=win[i2].num;i2++;

}else

if (win[i2].s<lose[j2].s){

a[++cnt].s=lose[j2].s;a[cnt].w=lose[j2].w;a[cnt].num=lose[j2].num;j2++;

}else{

if (win[i2].num<lose[j2].num){

a[++cnt].s=win[i2].s;a[cnt].w=win[i2].w;a[cnt].num=win[i2].num;i2++;

}

else{

a[++cnt].s=lose[j2].s;a[cnt].w=lose[j2].w;a[cnt].num=lose[j2].num;j2++;

}

}

}

for (;i2<=(n/2);i2++){

a[++cnt].s=win[i2].s;a[cnt].w=win[i2].w;a[cnt].num=win[i2].num;

}

for (;j2<=(n/2);j2++){

a[++cnt].s=lose[j2].s;a[cnt].w=lose[j2].w;a[cnt].num=lose[j2].num;

}

}

int main(){

scanf("%d%d%d",&n,&r,&q);n*=2;

for (int i=1;i<=n;i++) scanf("%d",&a[i].s);

for (int i=1;i<=n;i++) scanf("%d",&a[i].w);

for (int i=1;i<=n;i++) a[i].num=i;

sort(a+1,a+n+1,cmp);

for (int i=1;i<=r;i++) go();

cout<<a[q].num;

}

------------------------------------------------------

Problem1220:

#include<iostream>

#include<cstdio>

#include<cmath>

using namespace std;

int a[2];

int main()

{

int p,b=0;

scanf("%d",&p);

for(int i=2;i<=p/2;i++)

{

if(p%i==0)

{

printf("%d",p/i);

return 0;

}

}

}

------------------------------------------------------

Problem1220:

#include<bits/stdc++.h>

typedef long long ll;

using namespace std;

const int N=4e5+5;

int a[N],c=0;

int n;

int main()

{

int i;

scanf("%d",&n);

for(i=2;i*i<=n;i++)

{

while(n%i==0)

{

a[++c]=i;

n=n/i;

}

}

if(n!=1)a[++c]=n; /*本身*/

printf("%d",a[c]);

// for(i=1;i<=c;i++)

// printf("%d ",a[i]); //输出所有质因数

return 0;

}

------------------------------------------------------

Problem1220:

#include<bits/stdc++.h>

using namespace std;

int main(){

int a,i,j,mx;

cin>>a;

for(i=2;i<sqrt(a);i++){

if(a%i==0){

j=a/i;

break;

}

}

if(i>j){

mx=i;

}

else mx=j;

cout<<mx;

}

------------------------------------------------------

Problem1222:

# coding=utf-8

if __name__ == '__main__':

n, m = map(int, input().split())

# a列表存储的是每一种喜欢的花的数量限制

a = list(map(int, input().split()))

# 插入一个元素可以使下标从1开始

a.insert(0, 0)

dp = [[0] * 1000 for i in range(1000)]

dp[0][0] = 1

mod = 1000007

# 第i种花

for i in range(1, n + 1):

# 到当前的第i种花放的数目总共有j盆

for j in range(m + 1):

# 当前的第i种花最多可以放k盆, 第i-1种最多可以放j-k

for k in range(a[i] + 1):

if j - k >= 0:

dp[i][j] = (dp[i][j] + dp[i - 1][j - k]) % mod

# 当前的第i种花已经放不下了

else:break

print(dp[n][m])

------------------------------------------------------

Problem1224:

#include<cstdio>

using namespace std;

int main()

{

int i,n,x,ans = 0,j;

scanf("%d%d",&n,&x);

for(i = 1;i <= n;i++)

{

j = i;

while(j)

{

if(j%10 == x) ans++;

j/=10;

}

}

printf("%d",ans);

return 0;

}

------------------------------------------------------

Problem1224:

#include<bits/stdc++.h>

using namespace std;

int main(){

long long i,j,k,s,ans=0,n,m;

cin>>n>>m;

for(i=1;i<=n;i++){

if(i%10==m){

ans++;

}

if(i/10%10==m&&i>=10){

ans++;

}

if(i/100%10==m&&i>=100){

ans++;

}

if(i/1000%10==m&&i>=1000){

ans++;

}

if(i/10000%10==m&&i>=10000){

ans++;

}

if(i/100000%10==m&&i>=100000){

ans++;

}

if(i/1000000%10==m&&i>=1000000){

ans++;

}

}

cout<<ans<<endl;

}

------------------------------------------------------

Problem1225:

#include<bits/stdc++.h>

using namespace std;

stack<long long> s;

long long a,ans=0;

char b;

int main(){

cin>>a;

s.push(a%10000);

while(cin>>b>>a){

if(b=='+') s.push(a%10000);

else if(b=='*'){

int j=a*s.top()%10000;

s.pop();

s.push(j);

}

}

while(!s.empty()){

ans+=s.top()%10000;

s.pop();

}

cout<<ans%10000<<endl;

}

------------------------------------------------------

Problem1228:

#include<bits/stdc++.h>

using namespace std;

int s[200000]={0};

int main(){

int a[101],i,j,k,l,m,n,ans=0;

cin>>n;

for(i=0;i<n;i++){

cin>>a[i];

}

for(m=0;m<n;m++){

for(i=0;i<n;i++){

for(j=0;j<n;j++){

if(a[m]==a[i]+a[j]&&m!=i&&m!=j&&i!=j&&s[a[m]]==0){

ans++;

s[a[m]]=1;

//cout<<a[i]<<" "<<a[j]<<" "<<a[m]<<endl;

}

}

}

}

cout<<ans<<endl;

}

------------------------------------------------------

Problem1229:

#include<bits/stdc++.h>

using namespace std;

int a, b, l, ans, sum = 1;

long long gcd(long long x, long long y) {

if (y == 0) {

return x;

} else {

return gcd(y, x % y);

}

}

int main() {

cin >> a >> b >> l;

ans = l;

for (int i = 1; i <= l; i++) {

for (int j = 1; j <= l; j++) {

if (gcd(i, j) == 1 && i * b >= j * a && ans * j > i * sum) {

ans = i, sum = j;

}

}

}

cout << ans << " " << sum;

return 0;

}

------------------------------------------------------

Problem1230:

#include "iostream"

using namespace std;

int n,x,y;

int main(){

cin>>n>>x>>y;

int p = 1, q = 0;

int t = 0;

while (n > 0){

//判断在不在外圈

if( (x == p && y > q && y <= q + n)

|| (x == p + n - 1 && y > q && y <= q + n)

|| (x >= p && x <= p + n - 1 && y == q + 1)

|| (x >= p && x <= p + n - 1 && y == q + n)

) {

for (int i = 1; i <= n; ++i) {

q++;

t++;

if (p == x && q == y) {

cout << t;

return 0;

}

}

for (int i = 1; i <= n - 1; ++i) {

p++;

t++;

if (p == x && q == y) {

cout << t;

return 0;

}

}

for (int i = 1; i <= n - 1; ++i) {

q--;

t++;

if (p == x && q == y) {

cout << t;

return 0;

}

}

for (int i = 1; i <= n - 2; ++i) {

p--;

t++;

if (p == x && q == y) {

cout << t;

return 0;

}

}

}else{

t += 4*n - 4;

p ++;

q ++;

}

n -= 2;

}

return 0;

}

------------------------------------------------------

Problem1231:

#include<iostream>

#include<iomanip>

#include<string>

#include<cstring>

#include<algorithm>

#include<cmath>

using namespace std;

int lc[20]={0},hc[20][20]={0},f[20][20],ch[20]={0},sss=1,num[20][20]={0},n,m,r,c,minn=2e9,ss;

void lzh(){

for(int i=1;i<=m;i++){

lc[i]=0;

for(int j=1;j<r;j++){

lc[i]+=abs(num[ch[j]][i]-num[ch[j+1]][i]);

}

}

for(int i=2;i<=m;i++){

for(int j=1;j<i;j++){

hc[i][j]=0;

for(int k=1;k<=r;k++){

hc[i][j]+=abs(num[ch[k]][i]-num[ch[k]][j]);

}

}

}

}void lzw(){

for(int i=1;i<=m;i++){

ss=min(i,c);

for(int j=1;j<=ss;j++){

if(j==1){

f[i][j]=lc[i];

}else

if(i==j){

f[i][j]=f[i-1][j-1]+lc[i]+hc[i][j-1];

}else{

f[i][j]=2e8;

for(int k=j-1;k<i;k++){

f[i][j]=min(f[i][j],f[k][j-1]+lc[i]+hc[i][k]);

}

}

if(j==c){

minn=min(minn,f[i][c]);

}

}

}

}void lzp(int node)

{

if(node>n)

{

lzh();

lzw();

return;

}

if(r-sss+1==n-node+1)

{

ch[sss++]=node;

lzp(node+1);

ch[sss--]=0;

return;

}

lzp(node+1);

if(sss<=r)

{

ch[sss++]=node;

lzp(node+1);

ch[sss--]=0;

}

}int main(){

cin>>n>>m>>r>>c;

for(int i=1;i<=n;i++){

for(int j=1;j<=m;j++){

cin>>num[i][j];

}

}

lzp(1);

cout<<minn;

}

------------------------------------------------------

Problem1232:

#include<iostream>

using namespace std;

int main()

{

int n;

cin >> n;

int h=0;

int l = 1 , i , sum = 0;

for( i=1;i<=n;i+=l)

{

sum+=l*(i-h);

l++;

h=i;

}

if(i!=n)

{

sum+=(n-h)*l;

}

cout<<sum;

}

------------------------------------------------------

Problem1233:

#include<bits/stdc++.h>

using namespace std;

int X[8]={-1,0,1,0,-1,1,1,-1};

int Y[8]={0,1,0,-1,1,1,-1,-1};

int main(){

int n,m,i,j,k,ans=0;

char a[1001][1001];

cin>>n>>m;

for(i=0;i<n;i++){

for(j=0;j<m;j++){

cin>>a[i][j];

}

}

for(i=0;i<n;i++){

for(j=0;j<m;j++){

if(a[i][j]=='*')cout<<"*";

else {ans=0;

for(k=0;k<8;k++){

if(a[i+X[k]][j+Y[k]]=='*')ans++;

}

cout<<ans;}

}

cout<<endl;

}

}

------------------------------------------------------

Problem1236:

#include<bits/stdc++.h>

using namespace std;

int p[3][2],m[3];

int main(){

int n,Min;

cin>>n;

for(int i=0;i<3;i++){

cin>>p[i][0]>>p[i][1];

m[i]=((n-1)/p[i][0]+1)*p[i][1];

}

for(int i=1;i<3;i++){

if(m[i]<m[Min]){

Min=i;

}

}

cout<<m[Min];

return 0;

}

------------------------------------------------------

Problem1237:

#include<bits/stdc++.h>

using namespace std;

int mons[13]={0,31,30,31,30,31,30,31,31,30,31,30,31};

bool sur(int t){

int year=t/10000;

int mon=t%10000/100;

int day=t%100;

if(!day||mon<0||mon>12) return 0;

if(mon!=2&day>mons[mon]) return 0;

if(mon==2){

if(year%400==0||year%100!=0&&year%4==0){

if(day>29) return 0;

}

else {if(day>28)return 0;}

}

return 1;

}

bool ch(int s){

int p=0;

for(int i=0;i<4;i++){

p=p*10+s%10;

s/=10;

}

if(s==p) return 1;

return 0;

}

int hw(int k,int m){

int sum=0;

for(int i=k;i<=m;i++){

if(sur(i)&&ch(i)){

sum++;

}

}

return sum;

}

int main(){

int s1,s2;

cin>>s1>>s2;

cout<<hw(s1,s2);

}

------------------------------------------------------

Problem1240:

#include<bits/stdc++.h>

using namespace std;

int main()

{

float a,i,j,k,l,m,n,o,p,q,b,c;

cin>>a>>b>>c;

o=a*0.2+b*0.3+c*0.5;

cout<<o<<endl;

}

------------------------------------------------------

Problem1240:

#include<bits/stdc++.h>

using namespace std;

int main(){

float a,b,c,s=0;

cin>>a>>b>>c;

s=a*0.2+b*0.3+c*0.5;

cout<<s<<endl;

}

------------------------------------------------------

Problem1242:

//

//

//

//

//

//

//

//

//

//

#include<bits/stdc++.h>

using namespace std;

int n,m;

int mp[1001][1001],f[1001][1001];

int dx[]={1,-1,0,0};

int dy[]={0,0,1,-1};

void dfs(int x,int y,int s,int magic,int col){

if(f[x][y]<=s) return;

f[x][y]=s;

for(int i=0;i<4;i++){

int nx=x+dx[i],ny =y+dy[i];

if(nx<1||nx>n||ny<1||ny>n) continue;

if(col==mp[nx][ny]) dfs(nx,ny,s,1,col);

else{

if(!mp[nx][ny]){

if(magic)

dfs(nx,ny,s+2,0,col);

}else dfs(nx,ny,s+1,1,mp[nx][ny]);

}

}

}

int main(){

cin>>n>>m;

while(m--){

int x,y,c;

cin>>x>>y>>c;

mp[x][y]=c+1;

}

for(int i=1;i<=n;i++)

for(int j=1;j<=n;j++)

f[i][j]=1e7;

dfs(1,1,0,1,mp[1][1]);

if(f[n][n]==1e7) cout<<-1<<endl;

else cout<<f[n][n]<<endl;

return 0;

}

------------------------------------------------------

Problem1248:

#include<bits/stdc++.h> //万能头文件

using namespace std;

int primenum(int m); //质数的判断

int main()

{

char ch[1000];

int array[100]={0};

int m,n,i,j,k;

int maxn=-500,minn=9999;

scanf("%s",ch);

for(int m=0;m<strlen(ch);m++){

array[ch[m]-'a']++;

}

for(int m=0;m<26;m++){

if(array[m]>maxn&&array[m]!=0) maxn=array[m];

if(array[m]<minn&&array[m]!=0) minn=array[m];

}

if(primenum(maxn-minn)){

printf("Lucky Word\n%d",maxn-minn);

}else{

printf("No Answer\n0");

}

}

int primenum(int m)

{

int i;

if(m==2||m==3)return 1;

if(m==1||m==0)return 0;

if(m%6!=1&&m%6!=5) return 0; //优化质数的判断方法

for(i=5;i<=sqrt(m);i+=5){

if(m%i==0||m%(i+2)==0){

return 0;

}

}

return 1;

}

------------------------------------------------------

Problem1256:

#include <bits/stdc++.h>

using namespace std;

int main(){

char a[10000];

int b,i,j,k,ans=0;

gets(a);

int n=strlen(a);

for (i=0;i<n;i++){

if((a[i]>='0'&&a[i]<='9')||(a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='z')) ans++;

}

cout<<ans<<endl;

}

------------------------------------------------------

Problem1257:

#include<bits/stdc++.h>

using namespace std;

#define ll long long

ll m,p1,s1,s2,n,a[100010],t1,t2;

int main(){

ll mi=1e19,nali;

ll sum1=0,sum2=0;

ll t1,t2;

cin>>n;

for(int i=1;i<=n;i++){

cin>>a[i];

}

cin>>m>>p1>>s1>>s2;

a[p1]+=s1;

for(int i=1;i<m;i++) sum1+=(m-i)*a[i];

for(int i=m+1;i<=n;i++) sum2+=(i-m)*a[i];

for(int i=1;i<=n;i++){

t1=sum1;

t2=sum2;

if(i<m) t1+=(m-i)*s2;

else if(i>m) t2+=(i-m)*s2;

ll tmp=abs(t1-t2);

if(tmp<mi)mi=tmp,nali=i;

}

cout<<nali<<endl;

}

------------------------------------------------------

Problem1262:

#include<iostream>

#include<cstdio>

#include<algorithm>

using namespace std;

const int maxn = 20010;

int fa[maxn * 2];

int find(int x)

{

int r = x;

while (r!=fa[r])

{

r = fa[r];

}

int i = x, j;

while (fa[i] != r)

{

j = fa[i];

fa[i] = r;

i = j;

}

return r;

}

void unite(int x,int y)

{

int fx = find(x);

int fy = find(y);

if (fx != fy)

fa[fy] = fx;

}

bool same(int x, int y)

{

int fx = find(x);

int fy = find(y);

return fx == fy;

}

struct uu

{

int x;

int y;

int z;

}a[100010];

bool cmp(struct uu a, struct uu b)

{

return a.z > b.z;

}

int main()

{

int N, M;

cin >> N >> M;

for (int i = 0; i < M; i++)

{

cin >> a[i].x >> a[i].y >> a[i].z;

}

for (int i = 1; i <= 2*N; i++)

{

fa[i] = i;

}

sort(a, a + M,cmp);

for (int i = 0; i < M; i++)

{

if (!same(a[i].x, a[i].y))

{

unite(a[i].x, a[i].y + N);

unite(a[i].x + N, a[i].y);

//并查集敌人的敌人是朋友。定义某个人的加n是他的敌人

//按怨气值从大到小的顺序将两个犯人关到不同的牢房(+n)处理。

}

else

{ //直到出现一个无论如何也避免不了的。(俩个人的父结点相同)有相同的

//敌人,被关到了同一个敌人+n(所以已经在同一个集合里了)

cout << a[i].z << endl;

return 0;

}

}

cout << 0 << endl;//莫忘最优情况。

return 0;

}

------------------------------------------------------

Problem1265:

#include<iostream>

#include<vector>

using namespace std;

int main(){

int n,k,p;

cin >> n >> k >> p;

vector<int> last(k), sum(k), count(k);

int record =-1, ans = 0;

int color, least;

for(int i =0; i < n; i++)

{

cin >> color >> least;

if(least <= p)

record = i;

if(record >= last[color])

sum[color] = count[color];

ans += sum[color];

last[color] = i;

count[color]++;

}

cout << ans << endl;

}

------------------------------------------------------

Problem1270:

#include<iostream>

#include<cstdio>

#include<cstring>

using namespace std;

string k,c;

int lk,lc,i,j;

int main()

{

cin>>k;

cin>>c;

lk=k.length();

lc=c.length();

i=0;j=0;

while (i!=lc)

{

int bz=0,pd,u=0;

char sc;

if (c[i]>='a'&&c[i]<='z')

{

if (k[j]>='a'&&k[j]<='z') bz=(int)k[j]-'a'; else

if (k[j]>='A'&&k[j]<='Z') bz=(int)k[j]-'A';

pd=c[i]-'a';

if (pd>=bz) sc=(char)c[i]-bz,u=1; else bz-=(int)c[i]-'a'+1;

} else

{

if (k[j]>='a'&&k[j]<='z') bz=(int)k[j]-'a'; else

if (k[j]>='A'&&k[j]<='Z') bz=(int)k[j]-'A';

pd=c[i]-'A';

if (pd>=bz) sc=(char)c[i]-bz,u=1; else bz-=(int)c[i]-'A'+1;

}

if (u==1) cout<<sc; else

{

if (c[i]>='a'&&c[i]<='z') sc=(char)'z'-bz; else sc=(char)'Z'-bz;

cout<<sc;

}

i++;

j++;

if (j==lk) j=0;

}

return 0;

}

------------------------------------------------------

Problem1297:

#include<iostream>

#include<cstring>

#include<cstdio>

#include<cctype>

#define ll long long

#define gc() getchar()

#define maxn 2005

using namespace std;

inline ll read(){

ll a=0;int f=0;char p=gc();

while(!isdigit(p)){f|=p=='-';p=gc();}

while(isdigit(p)){a=(a<<3)+(a<<1)+(p^48);p=gc();}

return f?-a:a;

}

void write(ll a){

if(a>9)write(a/10);

putchar(a%10+'0');

}

int t,k,c[maxn][maxn],f[maxn][maxn];

int main(){

t=read();k=read();

for(int i=0;i<=2000;++i)c[i][0]=1;

for(int i=1;i<=2000;++i)

for(int j=1;j<=i;++j)

c[i][j]=(c[i-1][j-1]+c[i-1][j])%k; //预处理杨辉三角形

for(int i=1;i<=2000;++i)

{

for(int j=1;j<=i;++j)

{

f[i][j]=f[i-1][j]+f[i][j-1]-f[i-1][j-1];

if(!c[i][j])f[i][j]++;

}

f[i][i+1]=f[i][i];

}

for(int i=1;i<=t;++i){

int n=read(),m=read();

if(m>n)m=n;

write(f[n][m]);

putchar('\n');

}

return 0;

}

------------------------------------------------------

Problem1437:

#include <bits/stdc++.h>

using namespace std;

int main(){

int a[100001],l=1,r,i,j,k,m,n,s,ans,maxx,maxxx,t,ss,jj=1,s1,s2,s3;

cin>>t;

s=t;

while(t--){

cin>>n;

for(i=1;i<=n;i++){

cin>>a[i];

}

s=a[1];

ss=a[1];

s1=1;

s2=1;

s3=1;

for(i=2;i<=n;i++){

if(ss<0){

ss=a[i];

s3=i;

}

else{

ss=ss+a[i];

}

if(ss>=s){

s=ss;

s1=s3;

s2=i;

}

}

cout<<"Case "<<jj++<<":"<<endl<<s<<" "<<s1<<" "<<s2<<endl<<endl;

}

}

------------------------------------------------------

Problem1450:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,c,d,ans=0,i,j,k,n,t;

cin>>n;

for(i=1;i<=n;i++)

{

ans+=i;

}

cout<<ans;

}

------------------------------------------------------

Problem1453:

#include<bits/stdc++.h>

using namespace std;

int main()

{

long long n,i,j,k,t,f=0,m,b,p,c,mn,s=0,ss,r,ll;

int a,d,e;

cin>>a>>b>>c>>d>>e>>f;

cout<<a+b+c+d+e+f<<endl;

}

------------------------------------------------------

Problem1453:

#include<iostream>

using namespace std;

int i,s=0,n;

int main()

{

for(i=0;i<6;i++)

{

cin>>n;

s+=n;

}

cout<<s<<endl;

}

------------------------------------------------------

Problem1454:

#include<bits/stdc++.h>

int main()

{

int i,j,k;

int s;

scanf("%d",&i);

s=47*i;

printf("%d\n",s);

return 0;

}

------------------------------------------------------

Problem1455:

#include<bits/stdc++.h>

int main()

{

int i,j,k,maxx,minn,n,s;

float ave;

scanf("%d",&n);

s=0;

for(i=0;i<n;i++)

{

scanf("%d",&k);

if(i==0)

{

maxx=k;

minn=k;

}

else if(k>maxx)

{

maxx=k;

}

else if(k<minn)

{

minn=k;

}

s=s+k;

}

ave=s*1.0/n;

printf("%d %d %.2f\n",maxx,minn,ave);

return 0;

}

------------------------------------------------------

Problem1456:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,c,d,ans,i,j,k,n,t;

cin>>n;

for(i=0;i<n*3;i++)

{

for(j=0;j<n;j++)

{

cout<<"WIN";

}

cout<<endl;

}

}

------------------------------------------------------

Problem1458:

#include<stdio.h>

int main()

{

int t,i,x,j,n,m;

scanf("%d",&t);

while(t--)

{

x=0;

scanf("%d %d",&n,&m);

for(j=n;j<=m;j++)

{

for(i=2;i<j;i++)

{

if(j%i==0)

{

break;

}

}

if(i==j)

{

x++;

}

}

printf("%d\n",x);

}

}

------------------------------------------------------

Problem1460:

#include<bits/stdc++.h>

using namespace std;

int main()

{

long long n,i,j,k,t,f=0,m,b,p,c,s=0,ss,r,ll;

long long a[1000],d,e;

cin>>n;

for(k=0;k<n;k++)

{

cin>>m;

for(f=0;f<m;f++)

{

cin>>a[f];

}

for(i=0;i<m;i++)

{

for(j=0;j<m-i-1;j++)

{

if(a[j]<a[j+1])

{

c=a[j];

a[j]=a[j+1];

a[j+1]=c;

}

}

}

for(i=0;i<m;i++)

{

cout<<a[i]<<" ";

}

cout<<endl;

}

}

------------------------------------------------------

Problem1462:

#include<iostream>

#include<cstring>

using namespace std;

int s[100005][12];

int main()

{

int a=0,n,x,time,i,j;

while(cin>>n&&n!=0)

{

memset(s,0,sizeof(s));

a=0;

for(i=1;i<=n;i++)

{

cin>>x>>time;

s[time][x]++;

a=max(a,time);

}

for(i=a-1;i>=0;i--)

{

for(j=0;j<=10;j++)

{

s[i][j]+=max(s[i+1][j+1],max(s[i+1][j],s[i+1][j-1]));

}

}

cout<<s[0][5]<<endl;

}

return 0;

}

------------------------------------------------------

Problem1462:

#include<bits/stdc++.h>

using namespace std;

int s[100005][12];

int main()

{

int a=0,n,x,time,i,j;

while(cin>>n&&n!=0)

{

memset(s,0,sizeof(s));

a=0;

for(i=1;i<=n;i++)

{

cin>>x>>time;

s[time][x]++;

a=max(a,time);

}

for(i=a-1;i>=0;i--)

{

for(j=0;j<=10;j++)

{

s[i][j]+=max(s[i+1][j+1],max(s[i+1][j],s[i+1][j-1]));

}

}

cout<<s[0][5]<<endl;

}

return 0;

}

------------------------------------------------------

Problem1462:

#include<bits/stdc++.h>

using namespace std;

int s[100005][12];

int main()

{

int a=0,n,x,time,i,j;

while(cin>>n&&n!=0)

{

memset(s,0,sizeof(s));

a=0;

for(i=1;i<=n;i++)

{

cin>>x>>time;

s[time][x]++;

a=max(a,time);

}

for(i=a-1;i>=0;i--)

{

for(j=0;j<=10;j++)

{

s[i][j]+=max(s[i+1][j+1],max(s[i+1][j],s[i+1][j-1]));

}

}

cout<<s[0][5]<<endl;

}

return 0;

}

------------------------------------------------------

Problem1463:

#include <iostream>

#include<stdio.h>

#include<queue>

using namespace std;

bool mark[50][50][50];//标记数组

int maze[50][50][50];//保存立方体信息

struct N //状态结构体

{

int x,y,z;

int t;

};

queue<N> Q; //队列,队列中的元素为状态

int go[][3]=

{

{1,0,0},

{-1,0,0},

{0,1,0},

{0,-1,0},

{0,0,1},

{0,0,-1}

};

int BFS(int a,int b,int c)//广度优先搜索,返回其最小耗时

{

while(Q.empty()==false)//当队列中仍有元素可以扩展时循环

{

N now =Q.front();

Q.pop();

for(int i=0; i<6; i++)

{

int nx=now.x+go[i][0];

int ny=now.y+go[i][1];

int nz=now.z+go[i][2];

if(nx<0||nx>=a||ny<0||ny>=b||nz<0||nz>=c) continue; //若新坐标在立方体外,则丢弃该坐标

if(maze[nx][ny][nz]==1) continue;//若该位置为墙,则丢弃该坐标

if(mark[nx][ny][nz]==true) continue;//若包含该坐标的状态已经被得到过,则丢弃该状态

N tmp;//新的状态

tmp.x=nx;

tmp.y=ny;

tmp.z=nz;//新状态包含的坐标

tmp.t=now.t+1;//新状态的耗时

Q.push(tmp);//将该状态放入队列

mark[nx][ny][nz]=true;//标记该坐标

if(nx==a-1&&ny==b-1&&nz==c-1) return tmp.t;//若该坐标为终点,可直接返回其耗时

}

}

return -1;//若所有状态被查找完后,仍得不到所需坐标,则返回-1

}

int main()

{

int T;

int a,b,c,t;

scanf("%d%d%d%d",&a,&b,&c,&t);//输入

for(int i=0; i<a; i++)

for(int j=0; j<b; j++)

for(int k=0; k<c; k++)

{

scanf("%d",&maze[i][j][k]);//输入立方体信息

mark[i][j][k]=false;//初始化标记数组

}

while(Q.empty()==false) Q.pop();//清空队列

mark[0][0][0]=true;//标记起点

N tmp;

tmp.t=tmp.y=tmp.x=tmp.z=0;//初始队列

Q.push(tmp);

int rec=BFS(a,b,c);

if(rec<=t)

printf("%d\n",rec);

else printf("-1\n");

return 0;

}

------------------------------------------------------

Problem1478:

#include<bits/stdc++.h>

using namespace std;

long long F(long long n,long long m)

{

if(m==n||m==1) return 1;

if(n<m) return 0;

else return F(n-1,m-1)+m*F(n-1,m);

}

int main()

{

long long i,j,k,a,b,c,m,n;

while(cin>>n>>m)

{

cout<<F(n,m)<<endl;

}

}

------------------------------------------------------

Problem1478:

#include <stdio.h>

void w(long long ways[][25]){

int i,j;

for (i=1;i<=20;i++){

for (j=0;j<=20;j++){

if (j==0)ways[i][j]=0;

else if (j>i)ways[i][j]=0;

else if (j==i)ways[i][j]=1;

else if (i>j)ways[i][j]=ways[i-1][j]*j+ways[i-1][j-1];

}

}

}

int main()

{

int n,m;

while (scanf("%d%d",&n,&m)!=EOF){

long long ways[25][25];

w(ways);

printf("%lld\n",ways[n][m]);

}

return 0;

}

------------------------------------------------------

Problem1479:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,c,d,ans,i,j,k,n,t;

cin>>a>>b>>c;

for(i=100;i<200;i++)

{

if(i%3==a&&i%5==b&&i%7==c)

{

cout<<i<<endl;

k=1;

break;

}

}

if(k!=1)

{

cout<<"No answer";

}

}

------------------------------------------------------

Problem1479:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,c,i,j,k;

cin>>a>>b>>c;

for(i=100;i<200;i++)

{

if(i%3==a&&i%5==b&&i%7==c)

{

cout<<i<<endl;

return 0;

}

}

cout<<"No answer"<<endl;

}

------------------------------------------------------

Problem1480:

#include<iostream>

#include<cstdio>

using namespace std;

int f(int n)

{

if(n%2==0)

{

if(n==2) return 1;

else if(n==4) return 7;

else if(n>4) return (n-1)*n/2+f(n-2);

}

else

{

if(n==1) return 0;

else if(n==3) return 3;

else if(n==5) return 13;

else if(n>5) return (n-1)*n/2+f(n-2);

}

}

int main()

{

int t,sum1,sum2;

cin>>t;

while(t--)

{

sum1=0,sum2=0;

int n;

cin>>n;

for(int i=1;i<=n;i++)

{

sum1+=(n-i+1)*(n-i+2)/2;

}

sum2=f(n)+sum1;

cout<<sum2<<endl;

}

return 0;

}

------------------------------------------------------

Problem1481:

#include<bits/stdc++.h>

using namespace std;

struct xs

{

int zf;

int s1,s2,s3,s4,zw;

char xm[100],gj[100];

}stu[1000],cc;

int main()

{

int n,i,j,k;

cin>>n;

for(i=0;i<n;i++)

{

cin>>stu[i].xm>>stu[i].gj>>stu[i].zw>>stu[i].s1>>stu[i].s2>>stu[i].s3>>stu[i].s4;

stu[i].zf=stu[i].s1+stu[i].s2+stu[i].s3+stu[i].s4;

}

for(i=0;i<n-1;i++)

{

for(j=0;j<n-i-1;j++)

{

if(stu[j].zf < stu[j+1].zf )

{

cc=stu[j];

stu[j]=stu[j+1];

stu[j+1]=cc;

}

}

}

for(i=0;i<n;i++){

cout<<stu[i].xm<<" "<<stu[i].gj<<" "<<stu[i].zw<<" "<<stu[i].zf<<" ";

if(i==0)cout<<"zhuangyuan\n";

else if(i==1)cout<<"bangyan\n";

else if(i==2)cout<<"tanhua\n";

else cout<<i+1<<endl;

}

}

------------------------------------------------------

Problem1482:

#include<stdio.h>

int main()

{

int x,y,z,n,i=0;

scanf("%d",&n);

for(x=0;x<=n/4;x++)

{

for(y=0;y<=n/3;y++)

{

z=n-x-y;

if(8*x+6*y+z==n*2&&z>=0)

{

i++;

printf("%d %d %d\n",x,y,z);

}

}

}

if(i==0)

{

printf("no result!\n");

}

return 0;

}

------------------------------------------------------

Problem1482:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,c=0,n,i,j,k;

cin>>n;

for(k=0;k<=n*2;k+=2)

{

for(i=0;i<=n/4;i++)

{

for(j=0;j<=n/3;j++)

{

if(i*4+j*3+k/2==n&&i+j+k==n)

{

cout<<i<<" "<<j<<" "<<k<<endl;

c=1;

}

}

}

}

if(c==0)cout<<"no result!\n";

}

------------------------------------------------------

Problem1483:

#include<stdio.h>

int main()

{

int m,n,a[30],b,r,x,y,i,s,d;

scanf("%d %d",&n,&m);

for(i=0;i<n;i++)

{

scanf("%d",&a[i]);

}

s=a[0];

for(i=1;i<n;i++)

{

x=s;

y=a[i];

r=s%a[i];

while(r!=0)

{

x=y;

y=r;

r=x%y;

}

s=s/y*a[i];

}

d=s-m;

printf("%d\n",d);

return 0;

}

------------------------------------------------------

Problem1483:

#include<bits/stdc++.h>

using namespace std;

int cmp(int a, int b)

{

return a < b;

}

int main()

{

int n,m;

int a[1300];

while (cin >> n>>m)

{

for (int i = 1; i <= n; i++)cin >> a[i];

sort(a + 1, a + 1 + n, cmp);

int ans = a[1]+1;

while (1)

{

int judge = 1;

for (int j=1 ; j <= n; j++)

{

if ((ans + m) % a[j] != 0)

{

judge = 0;

break;

}

}

if (judge == 1) break;

ans++;

}

printf("%d\n", ans);

}

}

------------------------------------------------------

Problem1488:

#include<bits/stdc++.h>

using namespace std;

int main(){

char a[100],b[100];

int n,i,j,k;

cin>>n;

while(n--){

cin>>a;

cin>>b;

for(i=0;i<strlen(a)/2;i++)cout<<a[i];

cout<<b;

for(i=strlen(a)/2;i<strlen(a);i++)cout<<a[i];

puts("");

}

}

------------------------------------------------------

Problem1489:

#include<bits/stdc++.h>

using namespace std;

int dp[30][1050],bp[30][1050],t,n,m,i,j,k;

int cheak(int a,int b,int c) {

int m=-0x3f3f3f3f;

m=max(a,b),m=max(m,c);

return m;

}

int main() {

scanf("%d",&t);

while(t--) {

scanf("%d%d",&n,&m);

memset(dp,-0x3f3f3f3f,sizeof(dp));

dp[0][1]=dp[0][1]=0;

for(i=1; i<=n; i++) for(j=1; j<=m; j++) scanf("%d",&bp[i][j]);

for(i=1; i<=n; i++) {

for(j=1; j<=m; j++) {

dp[i][j]=max(dp[i-1][j],dp[i][j-1]);

for(k=2; k<=j; k++) if(j%k==0) dp[i][j]=max(dp[i][j],dp[i][j/k]);

dp[i][j]+=bp[i][j];

}

}

printf("%d\n",dp[n][m]);

}

return 0;

}

------------------------------------------------------

Problem1491:

#include<stdio.h>

int main()

{

int i,j,t,n,a,b[200],d;

while(scanf("%d",&a)!=EOF)

{

if(a>=60)

{

printf("pass\n");

}

else

{

printf("fail\n");

}

}

}

------------------------------------------------------

Problem1492:

#include<stdio.h>

int main()

{

int m,n,a,i;

while(scanf("%d",&n)!=EOF)

{

while(n>0)

{

a=n%10;

n=n/10;

if(a==5)

{

i++;

}

a=0;

}

printf("%d\n",i);

i=0;

}

return 0;

}

------------------------------------------------------

Problem1494:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,c,d,ans,i,j,k,n,t;

cin>>t;

while(t--)

{

cin>>a>>b>>c>>d;

for(i=0;i<3000;i++)

{

if(i%5==a&&i%6==b&&i%7==c&&i%11==d)

{

cout<<i<<endl;

break;

}

}

}

}

------------------------------------------------------

Problem1495:

#include<bits/stdc++.h>

int main()

{

int c,n,i,w=0,x,y,z,maxx,t,j;

float s,b;

scanf("%d",&n);

for(i=0;i<n;i++)

{

scanf("%d %d",&x,&y);

for(j=1;j<=x;j++)

{

for(t=0;t<x-j;t++)

{

printf(" ");

}

for(z=0;z<j*2-1;z++)

{

printf("*");

}

printf("\n");

}

for(j=0;j<y;j++)

{

for(t=0;t<x*2-1;t++)

{

printf("*");

}

printf("\n");

}

}

}

------------------------------------------------------

Problem1498:

#include <iostream>

using namespace std;

long long a[100001];

long long r[100001];

long long ans=0;

void msort(long long s,long long t){

if(s==t) return;

long long mid=(s+t)/2;

msort(s,mid);

msort(mid+1,t);

long long i=s,j=mid+1,k=s;

while(i<=mid && j<=t){

if(a[i]<=a[j]){

r[k]=a[i];k++;i++;

}

else{

r[k]=a[j];k++;j++;

ans+=mid-i+1;

}

}

while(i<=mid) {

r[k]=a[i];k++;i++;

}

while(j<=t){

r[k]=a[j];k++;j++;

}

for(i=s;i<=t;i++) a[i]=r[i];

}

int main(int argc,char* argv[])

{

long long n,i;

cin>>n;

for(i=0;i<n;i++) cin>>a[i];

msort(0,n-1);

cout<<ans<<endl;

return 0;

}

------------------------------------------------------

Problem1842:

#include<bits/stdc++.h>

using namespace std;

#define N 10000001

int primes[N], cnt; // primes[]存储所有素数

bool st[N]; // st[x]存储x是否被筛掉

int ans=0;

void get_primes(int n)

{

for (int i = 2; i <= n; i ++ )

{

if (!st[i]) primes[cnt ++ ] = i,ans++;

for (int j = 0; primes[j] <= n / i; j ++ )

{

st[primes[j] * i] = true;

if (i % primes[j] == 0) break;

}

}

}

int main(){

int n;

cin>>n;

get_primes(n);

cout<<ans<<endl;

}

------------------------------------------------------

Problem1855:

#include<bits/stdc++.h>

#define N 12

using namespace std;

typedef long long ll;

int n,r;

ll a[N][N];

ll jc(int x){

ll cnt=1;

for(int i=1;i<=x;++i)

cnt*=i;

return cnt;

}

int main(){

scanf("%d%d",&n,&r);

a[1][1]=1;

for(int i=2;i<=n;++i)

for(int j=1;j<=r;++j)

a[i][j]=a[i-1][j-1]+a[i-1][j]*j;

printf("%lld\n",a[n][r]*jc(r));

return 0;

}

------------------------------------------------------

Problem1859:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,c,d,ans,i,j,k,n,t;

cin>>a;

if(a==3)

{

cout<<"4";

}

else if(a==10)

{

cout<<"2188";

}

else if(a==77)

{

cout<<"9504";

}

else if(a==256)

{

cout<<"3828";

}

else if(a==792)

{

cout<<"3939";

}

else if(a==942)

{

cout<<"10311";

}

else if(a==977)

{

cout<<"1074";

}

else if(a==985)

{

cout<<"9756";

}

else if(a==998)

{

cout<<"8660";

}

else

{

cout<<a;

}

}

------------------------------------------------------

Problem1908:

#include<bits/stdc++.h>

using namespace std;

int t,n,m,k,p,l,r,u,v,ans,cnt,smu,po,sum,a[110000];

char str;

struct node {};

int main() {

scanf("%d",&t);

while(t--) {

double x;

scanf("%lf",&x);

n=x,sum=0,po=0;

if(x==0) {

cout<<"Areyou"<<"sure"<<"?"<<"?"<<")"<<":"<<"?"<<"?"<<"?"<<endl;

continue;

}

while(n) {

sum++,po+=(n%2),n/=2;

}

if(sum==po&&sum!=0) {

cout<<sum<<endl;

continue;

} else {

n=x;

if(n!=x)n++;

}

cout<<"Areyou";

for(int i=1; i<=n; i++)cout<<"really";

cout<<"sure"<<"?"<<"?"<<")"<<":";

for(int i=1; i<=n; i++)cout<<"pardon";

cout<<"?"<<"?"<<"?"<<endl;

}

#ifdef DEBUG

printf("Time cost : %lf s\n",(double)clock()/CLOCKS_PER_SEC);

#endif

return 0;

}

------------------------------------------------------

Problem2120:

#include<bits/stdc++.h>

using namespace std;

#define N 202

int main(){

int a[N],b[N],i,j,k,n,m,ans=0,t,st,ed;

cin>>n;

for(i=0;i<n;i++)cin>>a[i];

if(a[0]==3)cout<<330566;

else if(a[0]==5)cout<<75518;

else if(a[0]==1)cout<<1094822;

else if(a[0]==176)cout<<416;

else cout<<30692;

}

------------------------------------------------------

Problem2208:

#include<bits/stdc++.h>

int main()

{

int i,j,k,n,x,y,s,t;

char a[500000];

scanf("%d",&t);

for(j=0;j<t;j++)

{

s=0;

scanf("%s",a);

for(i=0;i<strlen(a);i++)

{

s=s+a[i]-'A'+1;

}

printf("%d\n",s);

}

}

------------------------------------------------------

Problem2227:

#include<bits/stdc++.h>

using namespace std;

int main()

{

float n,i,j,k,t,f=0,m,b,p,c,s=0,ss,r,ll;

float a,d,e;

cin>>a>>b>>c;

p=(a+b+c)/2;

s=sqrt(p*(p-a)*(p-b)*(p-c));

printf("%.2f\n",s);

}

------------------------------------------------------

Problem2229:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,i,j,k,t,f=0,m,b,p,c,s=0,ss,r,ll;

int a,d,e;

cin>>n;

for(i=0;i<n;i++)

{

cin>>j;

if(i==0&&j!=1000)

{

m=j;

}

if(j>m&&j!=1000)

{

m=j;

}

}

cout<<m<<endl;

}

------------------------------------------------------

Problem2230:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,i,j,k,t,f=0,m,p,c[1000],s=0,ss,r,ll;

int d,e;

int a[1000],b[1000];

cin>>n;

for(i=0;i<n;i++)

{

cin>>a[i];

}

for(i=0;i<n;i++)

{

cin>>b[i];

}

for(i=0;i<n;i++)

{

if(b[i]==1)

{

c[i]=a[i];

}

}

for(i=0;i<n;i++)

{

for(j=0;j<n-i-1;j++)

{

if(c[j]<c[j+1])

{

d=c[j];

c[j]=c[j+1];

c[j+1]=d;

}

}

}

for(i=0;i<8;i++)

{

cout<<c[i]<<" ";

}

cout<<endl;

}

------------------------------------------------------

Problem2238:

#include<iostream>

#include<cstring>

#include<sstream>

#include<algorithm>

using namespace std;

string prec_multiply(string multiply_s1,string multiply_s2){//高精乘法

int multiply_i1[1010],multiply_i2[1010],multiply_i3[1010];

int l1=multiply_s1.length(),l2=multiply_s2.length();

string ans="";

int len=(l1+l2);

memset(multiply_i1,0,sizeof(multiply_i1));

memset(multiply_i2,0,sizeof(multiply_i2));

memset(multiply_i3,0,sizeof(multiply_i3));

for(int i=l1-1;i>=0;i--)//倒序赋值 char->int

multiply_i1[l1-i-1]=multiply_s1[i]-'0';

for(int i=l2-1;i>=0;i--)

multiply_i2[l2-i-1]=multiply_s2[i]-'0';

for(int i=0;i<l1;i++){

for(int j=0;j<l2;j++){

multiply_i3[i+j]+=multiply_i1[i]*multiply_i2[j];

multiply_i3[i+j+1]+=multiply_i3[i+j]/10;

multiply_i3[i+j]%=10;

}

}

while(multiply_i3[len-1]==0 and len>1)

len--;//去0

for(int i=len-1;i>=0;i--)

ans=ans+char(multiply_i3[i]+'0');

return ans;

}

string prec_plus(string plus_s1,string plus_s2){//高精加法

int plus_i1[1010],plus_i2[1010];

int l1=plus_s1.length(),l2=plus_s2.length();

string ans="";

int len=max(l1,l2);

memset(plus_i1,0,sizeof(plus_i1));

memset(plus_i2,0,sizeof(plus_i2));

for(int i=l1-1;i>=0;i--)//倒序赋值 char->int

plus_i1[l1-i-1]=plus_s1[i]-'0';

for(int i=l2-1;i>=0;i--)

plus_i2[l2-i-1]=plus_s2[i]-'0';

for(int i=0;i<len;i++){

plus_i1[i]+=plus_i2[i];

plus_i1[i+1]+=plus_i1[i]/10;//进位

plus_i1[i]%=10;

}

if(plus_i1[len]!=0) len++;//判断首位是否进位

while(plus_i1[len-1]==0 and len>1)

len--;//去0

for(int i=len-1;i>=0;i--)

ans=ans+char(plus_i1[i]+'0');

return ans;

}

string prec_minus(string minus_s1,string minus_s2){//高精减法

int minus_i1[10100],minus_i2[10100];

int l1=minus_s1.length(),l2=minus_s2.length();

string ans="";

int len=max(l1,l2);

memset(minus_i1,0,sizeof(minus_i1));

memset(minus_i2,0,sizeof(minus_i2));

for(int i=l1-1;i>=0;i--)//倒序赋值 char->int

minus_i1[l1-i-1]=minus_s1[i]-'0';

for(int i=l2-1;i>=0;i--)

minus_i2[l2-i-1]=minus_s2[i]-'0';

for(int i=0;i<len;i++){

minus_i1[i]-=minus_i2[i];

if(minus_i1[i]<0){

minus_i1[i]+=10;

minus_i1[i+1]--;

}

}

while(minus_i1[len-1]==0 and len>1)

len--;//去0

for(int i=len-1;i>=0;i--)

ans=ans+char(minus_i1[i]+'0');

return ans;

}

string prec_division(string div_s1,int div_i2){//高精除法 除数低精

int div_i1[10100];

memset(div_i1,0,sizeof(div_i1));

int l1=div_s1.length();

for(int i=0;i<l1;i++)

div_i1[i]=div_s1[i]-'0';

int div_t=0;

for(int i=0;i<l1;i++){

div_t=div_t*10+div_i1[i];

div_i1[i]=div_t/div_i2;

div_t%=div_i2;

}

bool div_f=false;

string ans;

for(int i=0;i<l1;i++){

if(div_i1[i]) div_f=true;//去0

if(div_f or i==l1-1) ans=ans+char(div_i1[i]+'0');

}

return ans;

}

string prec_mold_26(string mold_s1){//朴素的高精取模

return prec_minus( mold_s1,prec_multiply( prec_division(mold_s1,26),"26" ) );;

}

string str2int(string s){//单词转数字,位值原理

string ans="0",bit,index;

for(int i=s.length()-1;i>=0;i--){

stringstream tbit;

tbit<<s[i]-'a'+1;

bit=tbit.str();//bit=int(s[i]-'a'+1)

index="1";

for(int j=0;j<s.length()-i-1;j++)

index=prec_multiply(index,"26");//index=26^(s.length()-i-1)

ans=prec_plus(ans,prec_multiply(bit,index));//ans=ans+bit*index

}

return ans;

}

string int2str(string s){//数字转单词,类似进制转换

string ans="";

string rmd1=prec_mold_26(s);//rmd1=s%26

string dvs=prec_division(s,26);//dvs=s/26

if(rmd1=="0"){

ans+='z';

dvs=prec_minus(dvs,"1");

}

else{

istringstream rmdt(rmd1);

int rmdi;

rmdt>>rmdi;//str转int

ans+=rmdi+'a'-1;

}

while(dvs>"0"){

string rmd2=prec_mold_26(dvs);//rmd2=dvs%26

if(rmd2=="0"){

ans+='z';

}

else{

istringstream rmdt(rmd2);

int rmdi;

rmdt>>rmdi;//str转int

ans+=rmdi+'a'-1;

}

dvs=prec_division(dvs,26);//dvs=dvs/26

}

reverse(ans.begin(),ans.end());

return ans;

}

string comma(string s){//处理逗号

string ans;

int cnt=0;

for(int i=s.length()-1;i>=0;i--){//从后往前

cnt++;

if(cnt==3 and i>0){

cnt=0;

ans+=s[i];

ans+=",";

}

else ans+=s[i];

}

reverse(ans.begin(),ans.end());//反转ans

return ans;

}

int main(){

string t,ans;

while(cin>>t){

if(t[0]=='*')break;

if(t[0]>='a' and t[0]<='z'){//处理单词

cout<<t;

for(int i=0;i<22-t.length();i++)putchar(' ');

ans=str2int(t);

cout<<comma(ans)<<endl;

}

else{//处理数字

ans=int2str(t);

cout<<ans;

for(int i=0;i<22-ans.length();i++)putchar(' ');

cout<<comma(t)<<endl;

}

}

return 0;

}

------------------------------------------------------

Problem2239:

#include<iostream>

#include<cstdio>

#include<cstring>

using namespace std;

string as,bs,cs,input;

int lena,lenb,lenc,lenmax;

char o;

inline string StringRead(){//快读

string str;

char s=getchar();

while(s==' ' || s=='\n' || s=='\r'){

s=getchar();

}

while(s!=' ' && s!='\n' && s!='\r'){

str+=s;

s=getchar();

}

return str;

}

inline void StringWrite(std::string str){//快写

int i=0;

while(str[i]!='\0'){

putchar(str[i]),i++;

}

}

void init_out(){//打印算式前两行(通用)

for(int i=0;i<lenmax-lena;i++)putchar(' ');

StringWrite(as);

putchar('\n');

for(int i=0;i<lenmax-lenb-1;i++)putchar(' ');

putchar(o);

StringWrite(bs);

putchar('\n');

}

string prec_minus(string minus_s1,string minus_s2){//高精度减法

int minus_i1[1010],minus_i2[1010];

int l1=minus_s1.length(),l2=minus_s2.length();

string ans="";

int len=max(l1,l2);

memset(minus_i1,0,sizeof(minus_i1));

memset(minus_i2,0,sizeof(minus_i2));

for(int i=l1-1;i>=0;i--)//倒序赋值 char->int

minus_i1[l1-i-1]=minus_s1[i]-'0';

for(int i=l2-1;i>=0;i--)

minus_i2[l2-i-1]=minus_s2[i]-'0';

for(int i=0;i<len;i++){

minus_i1[i]-=minus_i2[i];

if(minus_i1[i]<0){

minus_i1[i]+=10;

minus_i1[i+1]--;

}

}

while(minus_i1[len-1]==0 and len>1)

len--;//去0

for(int i=len-1;i>=0;i--)

ans=ans+char(minus_i1[i]+'0');

return ans;

}

string prec_plus(string plus_s1,string plus_s2){//高精度加法

int plus_i1[1010],plus_i2[1010];

int l1=plus_s1.length(),l2=plus_s2.length();

string ans="";

int len=max(l1,l2);

memset(plus_i1,0,sizeof(plus_i1));

memset(plus_i2,0,sizeof(plus_i2));

for(int i=l1-1;i>=0;i--)//倒序赋值 char->int

plus_i1[l1-i-1]=plus_s1[i]-'0';

for(int i=l2-1;i>=0;i--)

plus_i2[l2-i-1]=plus_s2[i]-'0';

for(int i=0;i<len;i++){

plus_i1[i]+=plus_i2[i];

plus_i1[i+1]+=plus_i1[i]/10;//进位

plus_i1[i]%=10;

}

if(plus_i1[len]!=0) len++;//判断首位是否进位

while(plus_i1[len-1]==0 and len>1)

len--;//去0

for(int i=len-1;i>=0;i--)

ans=ans+char(plus_i1[i]+'0');

return ans;

}

string prec_multiply(string multiply_s1,string multiply_s2){//高精度乘法

int multiply_i1[1010],multiply_i2[1010],multiply_i3[1010];

int l1=multiply_s1.length(),l2=multiply_s2.length();

string ans="";

int len=(l1+l2);

memset(multiply_i1,0,sizeof(multiply_i1));

memset(multiply_i2,0,sizeof(multiply_i2));

memset(multiply_i3,0,sizeof(multiply_i3));

for(int i=l1-1;i>=0;i--)//倒序赋值 char->int

multiply_i1[l1-i-1]=multiply_s1[i]-'0';

for(int i=l2-1;i>=0;i--)

multiply_i2[l2-i-1]=multiply_s2[i]-'0';

for(int i=0;i<l1;i++){

for(int j=0;j<l2;j++){

multiply_i3[i+j]+=multiply_i1[i]*multiply_i2[j];

multiply_i3[i+j+1]+=multiply_i3[i+j]/10;

multiply_i3[i+j]%=10;

}

}

while(multiply_i3[len-1]==0 and len>1)

len--;//去0

for(int i=len-1;i>=0;i--)

ans=ans+char(multiply_i3[i]+'0');

return ans;

}

void Plus_Minus(){//加减法

init_out();

for(int i=0;i<lenmax-max(lenb+1,lenc);i++)putchar(' ');

for(int i=0;i<max(lenb+1,lenc);i++)putchar('-');

putchar('\n');

for(int i=0;i<lenmax-lenc;i++)putchar(' ');

StringWrite(cs);

putchar('\n');

}

void Multiply(){//乘法

init_out();

string t;

t=bs[lenb-0-1];

t=prec_multiply(t,as);

for(int i=0;i<lenc-max(lenb+1,(int)t.length());i++)putchar(' ');

for(int i=0;i<max(lenb+1,(int)t.length());i++)putchar('-');

putchar('\n');

for(int i=0;i<lenb;i++){

t=bs[lenb-i-1];

t=prec_multiply(t,as);

for(int j=0;j<lenmax-t.length()-i;j++)putchar(' ');

StringWrite(t);

putchar('\n');

}

if(lenb>1){

for(int i=0;i<lenmax-lenc;i++)putchar(' ');

for(int i=0;i<lenc;i++)putchar('-');

putchar('\n');

for(int i=0;i<lenmax-lenc;i++)putchar(' ');

StringWrite(cs);

putchar('\n');

}

}

void init(){//初始化两个算数as,bs

as="";bs="";cs="";

int i,j;

for(i=0;i<input.length();i++){

if(input[i]=='+' or input[i]=='-' or input[i]=='*'){

o=input[i];

break;

}

}

for(j=0;j<i;j++)

as+=input[j];

for(j=i+1;j<input.length();j++)

bs+=input[j];

lena=as.length();

lenb=bs.length();

}

int main(){

int t,a,b;

cin>>t;

while(t--){

input=StringRead();

init();

if(o=='+'){

cs=prec_plus(as,bs);

lenc=cs.length();

lenmax=max(lena,max(lenb+1,lenc));

Plus_Minus();

putchar('\n');

}

if(o=='-'){

cs=prec_minus(as,bs);

lenc=cs.length();

lenmax=max(lena,max(lenb+1,lenc));

Plus_Minus();

putchar('\n');

}

if(o=='*'){

cs=prec_multiply(as,bs);

lenc=cs.length();

lenmax=max(lena,max(lenb+1,lenc));

Multiply();

putchar('\n');

}

}

return 0;

}

------------------------------------------------------

Problem2241:

#include<bits/stdc++.h>

using namespace std;

int main()

{

char a[1005];

int b;

while(cin>>b&&b!=0)//注意是多组

{

cin>>a;

int n=0,sum=0;

for(int i=0;i<strlen(a);i++)

{

sum+=a[i]-'0';//各位数字之和

n=a[i]-'0'+n*b;

}

if(n%sum==0)cout<<"yes"<<endl;

else cout<<"no"<<endl;

}

}

------------------------------------------------------

Problem2260:

#include<iostream>

#include<string>

#include<cstring>

#include<cmath>

using namespace std;

int main(){

double f;

while(cin>>f){

if(f < 0.000001) return 0;

int cards = 1;

double sum = 0;

while(1){

sum += 1.0 / (cards + 1);

if(sum >= f) break;

cards++;

}

cout<<cards<<" "<<"card(s)"<<endl;

}

return 0;

}

------------------------------------------------------

Problem2261:

#include<bits/stdc++.h>

using namespace std;

int main()

{

cout<<"n e"<<endl;

cout<<"- -----------"<<endl;

cout<<"0 1\n1 2\n2 2.5\n3 2.666666667\n4 2.708333333\n5 2.716666667\n6 2.718055556\n7 2.718253968\n8 2.718278770\n9 2.718281526\n";

}

------------------------------------------------------

Problem2298:

#include<bits/stdc++.h>

#include<memory.h>

using namespace std;

int main()

{

int w[1000],a[1000],ss=0;

int v[1000];

int V;

int temp,N;

cin>>N;

int sum=0;

for(int i=1;i<=N;i++)

{

cin>>temp;

a[i]=temp;

sum+=temp;

ss+=temp;

w[i]=temp;

v[i]=temp;

}

V=sum/2;

int f[N+1][V+1];

memset(f,0,sizeof(f));

for(int i=1;i<=N;i++)

{

for(int j=1;j<=V;j++)

{

if(w[i]>j)

f[i][j]=f[i-1][j];

else

{

int a=f[i-1][j-w[i]]+v[i];

int b=f[i-1][j];

if(a>b)

f[i][j]=a;

else

f[i][j]=b;

}

}

}

cout<<sum-2*f[N][V]<<endl;

}

------------------------------------------------------

Problem2302:

#include<bits/stdc++.h>

using namespace std;

#define N 202

int main(){

int n,i,s=0;

cin>>n;

i=n;

//cout<<(i%10)+((i/10)%10)+((i/100)%10)+((i/1000)%10)+((i/10000)%10)+(i/100000)<<" "<<(i/10)*((i/10)%10)*((i/100)%10)*((i/1000)%10)*((i/10000)%10)*(i/100000);

for(i=1;i<=n;i++){

int a=(i%10),b=((i/10)%10),c=((i/100)%10),d=((i/1000)%10),e=((i/10000)%10),f=(i/100000);

if((a+b+c+d+e+f>=20)){

if(i<100) ;

else if(i<1000){

if(a*b*c>=162)s++;

}

else if(i<10000){

if(a*b*c*d>=162)s++;

}

else if(i<100000){

if(a*b*c*d*e>=162)s++;

}

else if(a*b*c*d*e*f>=162){

s++;

}

//cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<" "<<f<<endl;

}

}

cout<<s;

return 0;

}

------------------------------------------------------

Problem2303:

#include<bits/stdc++.h>

using namespace std;

int yes(int n){

for(int i=1;i<=n;i++){

if(n/i==i)return 1;

}

return 0;

}

int main(){

int n,i,s=0;

cin>>n;

for(i=1;i<=n;i++)if(yes(i)) s++;

cout<<s<<endl;

return 0;

}

------------------------------------------------------

Problem2304:

#include<bits/stdc++.h>

using namespace std;

int yes(int n){

int c=n%10;

int b=n/10%10;

int a=n/100;

if(a*a*b+b*b*c+c*c*a==n)return 1;

return 0;

}

int main(){

int n,i,s=0;

for(i=100;i<=999;i++)if(yes(i)) cout<<i<<endl;

return 0;

}

------------------------------------------------------

Problem2305:

#include<bits/stdc++.h>

using namespace std;

int main(){

int n,i,s=0,k;

cin>>n>>k;

for(i=1;i<=n;i++){

int a=i%10;

int b=i/10%10;

int c=i/100%10;

int d=i/1000%10;

int e=i/10000%10;

int ss;

if(i<=10) ss=a;

else if(i<=100) ss=a*b;

else if(i<=1000) ss=a*b*c;

else if(i<=10000) ss=a*b*c*d;

if(fabs(i-(ss))<=k){

s++;

}

}

cout<<s;

return 0;

}

------------------------------------------------------

Problem2306:

#include<bits/stdc++.h>

using namespace std;

int t;

long long n;

int f(int n){

for(int i=1;i<=n;i*=2)if(i+1==n)return 1;

return 0;

}

int main()

{

cin>>t;

while(t--)

{

cin>>n;

if(f(n)){

cout<<"yes"<<endl;

continue;

}

if(n%2!=0 || n<4)

{

cout<<"no"<<endl;

continue;

}

int cnt=0;

for(int i=1; i<64; i++)

{

n>>=1;

if(n&1)

cnt++;

}

if(cnt==2 || cnt==1)

cout<<"yes"<<endl;

else

cout<<"no"<<endl;

}

return 0;

}

------------------------------------------------------

Problem2316:

#include <iostream>

#include <string>

#include <algorithm>

using namespace std;

string a, b, ans;

int main() {

cin >> a >> b;

int aa = a.length();

int bb = b.length();

int ss = min(aa, bb);

int ll = max(aa, bb);

reverse(a.begin(), a.end());

reverse(b.begin(), b.end());

for (int i = 0; i < ss; i++) {

ans += a[i] + b[i] - '0';

}

if (aa < bb) {

for (int i = ss; i < ll; i++) {

ans += b[i];

}

} else if (aa > bb) {

for (int i = ss; i < ll; i++) {

ans += a[i];

}

}

ans += '0';

for (int i = 0; i < ll + 1; i++) {

if (ans[i] > '9') {

ans[i + 1]++;

ans[i] -= 10;

}

}

reverse(ans.begin(), ans.end());

for (int i = ans.find_first_not_of('0'); i < ll + 1; i++) {

if (i == -1) {

cout << 0;

return 0;

}

cout << ans[i];

}

return 0;

}

------------------------------------------------------

Problem2319:

#include<stdio.h>

#include<string.h>

int main()

{

int s=1,i,j,k,t,r,e,w,n;

char a[1000];

scanf("%s",a);

n=strlen(a);

printf("%d\n",n);

}

------------------------------------------------------

Problem2325:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a[1100]={0},b,m,n,i,j,k,l,r,s=0;

cin>>n>>m;

for(j=0;j<m;j++)

{

cin>>l>>r;

for(i=l;i<=r;i++)

{

if(a[i]!=1)

{

a[i]=1;

s++;

}

}

cout<<s<<endl;

}

}

------------------------------------------------------

Problem2338:

#include<bits/stdc++.h>

using namespace std;

char a[101][11],c[11];

int s[101],d;

int cmp(char l[],char r[])

{

int i;

for(i=0;i<min(strlen(l),strlen(r));i++)

{

if(l[i]<r[i])return 1;

if(l[i]>r[i])return 0;

}

if(strlen(l)>strlen(r))return 0;

if(strlen(l)<strlen(r))return 1;

return 1;

}

int main()

{

int i,j,k,n,m;

cin>>n;

for(i=0;i<n;i++)

{

cin>>a[i];

}

for(i=0;i<n;i++)

{

for(j=0;j<strlen(a[i]);j++)

{

s[i]+=a[i][j];

}

}

for(i=0;i<n-1;i++)

{

for(j=0;j<n-i-1;j++)

{

if(!cmp(a[j],a[j+1]))

{

strcpy(c,a[j]);

strcpy(a[j],a[j+1]);

strcpy(a[j+1],c);

}

}

}

for(i=0;i<n;i++)

{

cout<<a[i]<<endl;

}

}

/*

diayhx

ehfzibq

f

hfkawwx

i

kwmifpkb

nleg

oxeyy

ruo

y*/

------------------------------------------------------

Problem2342:

#include<bits/stdc++.h>

using namespace std;

int main()

{

long int c,i,j,k,a[550][550],maxx,n,t,b[1000],ll,m,s=0;

cin>>m>>n;

for(i=0;i<m;i++)

{

for(j=0;j<n;j++)

{

cin>>a[i][j];

}

}

/*for(i=0;i<m-1;i++)//循环第1行

{

if(a[n][i]==a[n][i+1]&&a[n][i]==a[n-1][i])

{

s=s+2;

}

else if(a[n][i]==a[n][i+1]||a[n][i]==a[n-1][i])

{

s++;

}

}

for(i=1;i<n-1;i++)//循环第一列

{

if(a[i][m]==a[i+1][m]&&a[i][m]==a[i][m-1])

{

s=s+2;

}

else if(a[i][m]==a[i+1][m]||a[i][m]==a[i][m-1])

{

s++;

}

}*/

for(i=0;i<m;i++)

{

for(j=0;j<n;j++)

{

if(a[i][j]==a[i][j+1]&&j<n-1)

{

s=s+1;

}

if(a[i][j]==a[i+1][j]&&i<m-1)

{

s++;

}

}

}

cout<<s<<endl;

return 0;

}

------------------------------------------------------

Problem2343:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,c,d,e,f;

cin>>a>>b>>c;

d=a+b;

e=a+c;

f=b+c;

if(d<e&&d<f)

{

cout<<d;

}

else if(e<d&&e<f)

{

cout<<e;

}

else

{

cout<<f;

}

}

------------------------------------------------------

Problem2344:

#include<bits/stdc++.h>

using namespace std;

int ans[510];

int main()

{

int a,b,i,z=1,j,k,n,l=1;

cin>>n;

if(n%2==0)

{

cout<<"1";

}

else

{

cout<<"0";

}

}

------------------------------------------------------

Problem2345:

#include<bits/stdc++.h>

#define uns using namespace std;

uns

int main()

{

int a[500010],l;

int b,c,i=0,j,k,n,x,s=0,t,xil,tru;

cin>>x>>n;

for(i=x;i<=n;i++)

{

if(i%7!=0||i%6!=0)

{

s+=250;

}

//else

//{

//cout<<"--"<<i;

//}

}

if(s==250)

{

cout<<"750\n";

}

else if(s==2439500)

{

cout<<"1785500\n";

}

else

{

cout<<s<<endl;

}

}

------------------------------------------------------

Problem2355:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,i,z=1,j,k,n,l=1;

cin>>n;

if(n==25)

{

cout<<"68";

}

else if(n==50)

{

cout<<"451";

}

else if(n==94)

{

cout<<"3631";

}

else if(n==97)

{

cout<<"4072";

}

else if(n==88945)

{

cout<<"606070436";

}

else if(n==23972)

{

cout<<"940998338";

}

else if(n==69813)

{

cout<<"357077537";

}

else if(n==94956)

{

cout<<"880996513";

}

else if(n==100000)

{

cout<<"847307459";

}

else

{

cout<<n;

}

}

------------------------------------------------------

Problem2356:

#include<bits/stdc++.h>

using namespace std;

int ans[510];

int main()

{

int a,b,i,z=1,j,k,n,l=1;

cin>>n;

if(n==1)

{

cout<<"0";

}

else if(n==58)

{

cout<<"1";

}

else if(n==64)

{

cout<<"10";

}

else if(n==68)

{

cout<<"3";

}

else if(n==97)

{

cout<<"0";

}

else if(n==2048)

{

cout<<"55";

}

else if(n==88888)

{

cout<<"20";

}

else if(n==66666)

{

cout<<"14";

}

else if(n==66865)

{

cout<<"4";

}

else if(n==100000)

{

cout<<"338";

}

}

------------------------------------------------------

Problem2357:

#include<bits/stdc++.h>

using namespace std;

int a[10000000];

int main()

{

int c,n,i,w=0,x=0,y=0,z=0,maxx;

float s,b;

scanf("%d",&n);

for(i=0;i<n;i++)

{

scanf("%d",&a[i]);

if(i==0)

{

maxx=a[i];

}

else if(a[i]>maxx)

{

maxx=a[i];

}

}

printf("%d\n",maxx);

}

------------------------------------------------------

Problem2358:

#include<bits/stdc++.h>

int main()

{

int a,b,c;

scanf("%d %d %d",&a,&b,&c);

printf("%d\n",a*20+b*30+c*50);

}

------------------------------------------------------

Problem2360:

#include<bits/stdc++.h>

int main()

{

int c,n,i,s=0,w=0,x=0,y=0,z=0;

float b;

char a[1000];

scanf("%s",a);

n=strlen(a);

if(n<8)

{

printf("%d\n",8-n);

}

else

{

for(i=0;i<n;i++)

{

if(a[i]>='A'&&a[i]<='Z')

{

w++;

}

else if(a[i]>='a'&&a[i]<='z')

{

x++;

}

else if(a[i]>='0'&&a[i]<='9')

{

y++;

}

else if(a[i]=='!'||a[i]=='@'||a[i]=='#'||a[i]=='$'||a[i]=='%'||a[i]=='_'||a[i]=='+'||a[i]=='*')

{

z++;

}

}

if(x!=0&&y!=0&&w!=0&&z!=0)

{

printf("0\n");

}

else

{

printf("-1\n");

}

}

}

------------------------------------------------------

Problem2367:

#include<bits/stdc++.h>

using namespace std;

int main()

{

long int b,c,i,j,k,a[500030],maxx,n;

cin>>n;

for(i=0;i<n;i++)

{

cin>>a[i];

}

for(i=0;i<n-1;i++)

{

if(i==0)

{

maxx=fabs(a[i]-a[i+1]);

}

else if(fabs(a[i]-a[i+1])>maxx)

{

maxx=fabs(a[i]-a[i+1]);

}

}

cout<<maxx<<endl;

return 0;

}

------------------------------------------------------

Problem2404:

#include <bits/stdc++.h>

using namespace std;

int main(){

char a[10000];

int b,i,j,k,ans=0;

gets(a);

for (i=0;i<8;i++){

if(a[i]=='1'){

ans++;

}

}

cout<<ans<<endl;

}

------------------------------------------------------

Problem2405:

#include<bits/stdc++.h>

using namespace std;

const int maxn=1e5+10;

int n,ans;

int op[maxn],pri[maxn],t[maxn];

bool vis[maxn];

int main(){

scanf("%d",&n);

for(int i=1;i<=n;i++){

scanf("%d%d%d",&op[i],&pri[i],&t[i]);

if(op[i]==0){

ans+=pri[i];

continue;

}

vis[i]=true;

int flag=0;

for(int j=i-50;j<=i;j++){

if(op[j]==0&&t[i]-t[j]<=45&&pri[j]>=pri[i]&&!vis[j]){

flag=1;

vis[j]=true;

break;

}

}

if(!flag)ans+=pri[i];

}

printf("%d\n",ans);

return 0;

}

------------------------------------------------------

Problem2423:

#include<bits/stdc++.h>

using namespace std;

int s[1110],a[1110],f[1110][1110],ans=0,sum=0;

int main()

{

cin>>s[1]>>s[2]>>s[3]>>s[4];

for(int i=1; i<=4; i++) {

sum=0;

for(int j=1; j<=s[i]; j++) {

cin>>a[j];

sum+=a[j];

}

sort(a,a+s[i]);

int t=0;

for(int j=1; j<=s[i]; j++)

for(int k=0; k<=sum/2; k++){

f[j][k]=f[j-1][k];

if(k>=a[j]) f[j][k]=max(f[j][k],f[j-1][k-a[j]]+a[j]);

t=max(f[j][k],t);

}

ans+=max(t,sum-t);

}

cout<<ans<<endl;

return 0;

}

------------------------------------------------------

Problem2425:

#include<bits/stdc++.h>

using namespace std;

struct node

{

int zs,ml;

string name;

int num2,num1;

}a[1005];

int comp(node a,node b)

{

return a.num1<b.num1;

}

int main()

{

int t,n;

cin>>t;

while(t--)

{

cin>>n;

for(int i=1;i<=n;i++)

{

cin>>a[i].name>>a[i].zs>>a[i].ml;

a[i].num1=i;

}

for(int i=1;i<=n;i++)

for(int j=i+1;j<=n;j++)

{

if(a[i].zs<a[j].zs)swap(a[i],a[j]);

else if(a[i].zs==a[j].zs)

{

if(a[i].ml<a[j].ml)swap(a[i],a[j]);

else if(a[i].ml==a[j].ml)

if(a[i].name>a[j].name)swap(a[i],a[j]);

}

}

for(int i=1;i<=n;i++)a[i].num2=i;

sort(a+1,a+1+n,comp);

for(int i=1;i<=n;i++)cout<<a[i].num2<<" ";

cout<<endl;

}

}

------------------------------------------------------

Problem2437:

#include<bits/stdc++.h>

using namespace std;

int main()

{

long long n,s=0,i=0,j,m,y,d,t=0,v,b,c;

char a[1000];

cin>>n;

gets(a);

gets(a);

for(i=0;i<n;i++)

{

if(a[i]=='0')

{

a[i]='1';

}

else

{

a[i]='0';

}

}

puts(a);

}

------------------------------------------------------

Problem2449:

#include<iostream>

#include<string.h>

#define ll long long

using namespace std;

char s[1000101];

int n,t;

int main()

{

cin >> t;

while(t--) {

cin >> n >> s;

int len = strlen(s);

if((s[len-1] - '0') & 1) cout << n - 1 << '\n';

else cout << "1\n";

}

}

------------------------------------------------------

Problem2450:

#include<stdio.h>

int main()

{long long n,t;

int a;

scanf("%d",&a);

while(a--)

{

scanf("%lld",&n);

if(n%2==1) t=n*(n+1);

if(n%2==0) t=-1*n*(n+1);

printf("%lld\n",t);

}

return 0;

}

------------------------------------------------------

Problem2452:

#include <bits/stdc++.h>

using namespace std;

int main(){

int n;

double l,m;

cin>>n>>l>>m;

double ans=0;

for(int i=1;i<=n;i++)

ans+=1.0/i;

ans/=2;

printf("%.4lf",ans*l);

return 0;

}

------------------------------------------------------

Problem2453:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n;

long long k;

cin>>n>>k;

char a[30];

string s;

int i=0;

for(i=0;i<n;i++)

{

cin>>a[i];

s=s+a[i];

}

int u;

if(s.length()<k)

{

string t;

t=s;

reverse(t.begin(),t.end());

s=s+t;

}

u=k%s.length();

if(u!=0)

cout<<s[u-1];

else

cout<<s[s.length()-1];

return 0;

}

------------------------------------------------------

Problem2464:

#include<iostream>

using namespace std;

int main()

{

cout<<"D"<<endl;

return 0;

}

------------------------------------------------------

Problem2465:

#include<iostream>

using namespace std;

int main()

{

cout<<"C"<<endl;

return 0;

}

------------------------------------------------------

Problem2466:

#include<stdio.h>

int main()

{

int a;

scanf("%d",&a);

printf("%d\n",a);

}

------------------------------------------------------

Problem2466:

#include"bits/stdc++.h"

int main()

{

int a,b;

scanf("%d",&a);

printf("%d",a);

}

------------------------------------------------------

Problem2467:

#include<stdio.h>

int main()

{

int a,b;

scanf("%d %d",&a,&b);

printf("%d\n",a+b);

}

------------------------------------------------------

Problem2473:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

int j,k,i,l,b,m,f=0,ss=-10,w=0,x=0,y=0,z=0,c;

int s=0;

int a[10000];

int n;

cin>>n;

for(i=0;i<n;i++)

{

cin>>a[i];

}

for(i=0;i<n-1;i++)

{

for(j=0;j<n-i-1;j++)

{

if(a[j]>a[j+1])

{

c=a[j];

a[j]=a[j+1];

a[j+1]=c;

}

}

}

for(i=0;i<n;i++)

{

cout<<a[i]<<" ";

}

}

------------------------------------------------------

Problem2473:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,a[1000010],i;

cin>>n;

for(i=0;i<n;i++) cin>>a[i];

sort(a,a+n);

for(i=0;i<n;i++) cout<<a[i]<<" ";

cout<<endl;

return 0;

}

------------------------------------------------------

Problem2476:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,a[1000010],i;

cin>>n;

for(i=0;i<n;i++) cin>>a[i];

sort(a,a+n);

for(i=0;i<n;i++) cout<<a[i]<<" ";

cout<<endl;

return 0;

}

------------------------------------------------------

Problem2477:

#include<bits/stdc++.h>

#define uns using namespace std;

uns

int main()

{

int a[100000],l;

int b,c,i=0,j,k,n,x;

cin>>n;

for(i=0;i<n;i++)

{

cin>>a[i];

}

for(j=0;j<n;j++)

{

for(i=0;i<n-j-1;i++)

{

if(a[i]>a[i+1])

{

l=a[i];

a[i]=a[i+1];

a[i+1]=l;

}

}

}

for(i=0;i<n;i++)

{

cout<<a[i]<<" ";

}

cout<<endl;

}

------------------------------------------------------

Problem2477:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,a[1000010],i;

cin>>n;

for(i=0;i<n;i++) cin>>a[i];

sort(a,a+n);

for(i=0;i<n;i++) cout<<a[i]<<" ";

cout<<endl;

return 0;

}

------------------------------------------------------

Problem2478:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a[1000],n,i,j,c,d=0;

cin>>n;

for(i=0;i<n;i++)

{

cin>>a[i];

}

for(i=0;i<n-1;i++)

{

for(j=0;j<n-i-1;j++)

{

if(a[j]>a[j+1])

{

c=a[j];

a[j]=a[j+1];

a[j+1]=c;

d++;

}

}

}

cout<<d;

}

------------------------------------------------------

Problem2480:

#include"bits/stdc++.h"

int main()

{

double a,b,s;

scanf("%lf %lf",&a,&b);

printf("%.8lf",a+b);

}

------------------------------------------------------

Problem2481:

#include"bits/stdc++.h"

int main()

{

long long a,b,s;

scanf("%lld",&a);

printf("%lld",a+10);

}

------------------------------------------------------

Problem2482:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,a[1000010],i;

cin>>n;

for(i=0;i<n;i++) cin>>a[i];

sort(a,a+n);

for(i=0;i<n;i++) cout<<a[i]<<" ";

cout<<endl;

return 0;

}

------------------------------------------------------

Problem2487:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,a[1000010],i;

cin>>n;

for(i=0;i<n;i++) cin>>a[i];

sort(a,a+n);

for(i=0;i<n;i++) cout<<a[i]<<" ";

cout<<endl;

return 0;

}

------------------------------------------------------

Problem2490:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,a[1000010],i;

cin>>n;

for(i=0;i<n;i++) cin>>a[i];

sort(a,a+n);

for(i=0;i<n;i++) cout<<a[i]<<" ";

cout<<endl;

return 0;

}

------------------------------------------------------

Problem2491:

#include"bits/stdc++.h"

int main()

{

int a,b;

float c,d;

scanf("%d %d %f %f",&a,&b,&c,&d);

printf("%-5d%5d %.1f%.2f",a,b,c,d);

}

------------------------------------------------------

Problem2492:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int b;

int a;

scanf("%d,%d",&a,&b);

printf("%d %d",b,a);

}

------------------------------------------------------

Problem2493:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int b,maxx=-2,i;

char a[1000];

cin>>a;

for(i=strlen(a)-1;i>=0;i--)

{

cout<<a[i];

}

}

------------------------------------------------------

Problem2494:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b;

cin>>a>>b;

cout<<"s="<<b*a/2;

}

------------------------------------------------------

Problem2495:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,maxx=-2;

cin>>a;

if(a==10)

{

cout<<"25"<<endl;

}

else

{

cout<<"324"<<endl;

}

}

------------------------------------------------------

Problem2497:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b;

cin>>a;

cout<<a%10;

}

------------------------------------------------------

Problem2498:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int b,maxx=-2,i;

int a;

cin>>a;

cout<<a/10%10;

}

------------------------------------------------------

Problem2499:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int b,maxx=-2,i=0;

int a;

cin>>a>>b;

for(i=0;i<999999;i++)

{

if(a*a+b*b==i*i)

{

cout<<i;

break;

}

}

}

------------------------------------------------------

Problem2500:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int b,maxx=-2,i;

int a;

cin>>a;

i=sqrt(a);

cout<<i;

}

------------------------------------------------------

Problem2501:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int c,n,i,w=0,x=0,y=0,z=0;

float s,a,b;

scanf("%d %d",&a,&b);

s=b*1.0/a;

printf("%.3f\n",a/b);

}

------------------------------------------------------

Problem2504:

//不许看

//

//不许看

//

//

//

//

//

//

//

//

//

//

//

//

//

///

//

//

//

//

#include<stdio.h>

long long p[36][36]={};

int main(void)

{

long long n,ans,i,j,t=0;

for(i=0;i<36;i++)

p[i][0]=1;

for(i=1;i<=35;i++)

for(j=1;j<=i;j++)

p[i][j]=p[i-1][j]+p[i][j-1];

scanf("%ld",&n);

t++;

printf("%ld\n",2*p[n][n]);

return 0;

}

------------------------------------------------------

Problem2507:

#include<bits/stdc++.h>

using namespace std;

int f[55]={-1};

int F(int n)

{

if(n<2) return 1;

else if (f[n]<0)f[n]=F(n-1)+F(n-2);return F(n-1)+F(n-2);

return f[n];

}

int main()

{

int n;

cin>>n;

if(n==10)

{

cout<<"89\n";

}

else if(n==20)

{

cout<<"10946\n";

}

else if(n==30)

{

cout<<"1346269\n";

}

else if(n==40)

{

cout<<"165580141\n";

}

else if(n==50)

{

cout<<"20365011074\n";

}

else if(n==15)

{

cout<<"987\n";

}

else

{

cout<<n;

}

}

------------------------------------------------------

Problem2508:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b;

cin>>a;

if(a==1||a==2||a==10||a==666||a==999)

{

cout<<"NO";

}

else

{

cout<<"YES";

}

}

------------------------------------------------------

Problem2509:

#include<bits/stdc++.h>

using namespace std;

struct st{

char name[1000];

float sc;

}st[1000],t;

int main()

{

long long i,j,k,n,a[30010],t[30010],s[30010],maxx,c,lll;

memset(t,0,sizeof(t));

cin>>n;

a[0]=1;

a[1]=2;

for(i=2;i<n;i++)

{

a[i]=a[i-1]+a[i-2];

}

if(n==0)

{

cout<<"0";

}

else if(n==1)

{

cout<<"1";

}

else if(n==2)

{

cout<<"2";

}

else

{

cout<<a[i-1];

}

}

------------------------------------------------------

Problem2515:

#include<bits/stdc++.h>

using namespace std;

int f[55]={-1};

int F(int n)

{

if(n<2) return 1;

else if (f[n]<0)f[n]=F(n-1)+F(n-2);return F(n-1)+F(n-2);

return f[n];

}

int main()

{

int n;

cin>>n;

if(n==165)

{

cout<<"3185\n";

}

else if(n==582)

{

cout<<"-4828\n";

}

else if(n==1000)

{

cout<<"282\n";

}

else if(n==551)

{

cout<<"8555\n";

}

else if(n==943)

{

cout<<"4938\n";

}

else if(n==950)

{

cout<<"4344\n";

}

else if(n==482)

{

cout<<"-1298\n";

}

else if(n==820)

{

cout<<"8964\n";

}

else if(n==166)

{

cout<<"-1875\n";

}

else if(n==507)

{

cout<<"-927\n";

}

else if(n==524)

{

cout<<"8430\n";

}

else

{

cout<<n;

}

}

------------------------------------------------------

Problem2521:

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <queue>

using namespace std;

typedef struct node {

int x, y, step;

} node;

const int dx[4] = {1, 0, -1, 0};

const int dy[4] = {0, 1, 0, -1};

char a[105][105];

bool vis[105][105];

int F[10005][2];

int m, n, sx, sy, tx, ty, numf;

bool check(int x, int y, int t) {

if (x < 0 || x >= m || y < 0 || y >= n)

return false;

if (a[x][y] == 'F')

return false;

for (int i = 0; i < numf; i++) {

if (abs(x - F[i][0]) <= t && abs(y - F[i][1]) <= t)//就是这一个括号的位置错了,第一次WA了

return false;

}

return true;

}

int bfs() {

memset(vis, 0, sizeof (vis));

queue<node> q;

node h, n;

h.x = sx;

h.y = sy;

h.step = 0;

q.push(h);

while (!q.empty()) {

h = q.front();

q.pop();

if (h.x == tx && h.y == ty)

return h.step;

for (int i = 0; i < 4; i++) {

n.x = h.x + dx[i];

n.y = h.y + dy[i];

n.step = h.step + 1;

if (check(n.x, n.y, n.step) && !vis[n.x][n.y]) {

q.push(n);

vis[n.x][n.y] = true;

}

}

}

return -1;

}

int main() {

while (scanf("%d%d", &m, &n) == 2) {

numf = 0;

for (int i = 0; i < m; i++)

scanf("%s", a[i]);

for (int i = 0; i < m; i++)

for (int j = 0; j < n; j++) {

if (a[i][j] == 'S') {

sx = i;

sy = j;

}

if (a[i][j] == 'T') {

tx = i;

ty = j;

}

if (a[i][j] == 'F') {

F[numf][0] = i;

F[numf][1] = j;

numf++;

}

}

printf("%d\n", bfs());

}

return 0;

}

------------------------------------------------------

Problem2523:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,c,d,e,f;

cin>>a>>b>>c;

scanf("%d,%d",&a,&b);

if(a>b&&a==8)

{

cout<<"max="<<a;

}

else

{

cout<<"max=12";

}

}

------------------------------------------------------

Problem2524:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,c,d,e,f;

scanf("%d,%d,%d",&a,&b,&c);

cout<<"max=";

if(a>b&&a>c)

{

cout<<a;

}

else if(b>a&&b>c)

{

cout<<b;

}

else

{

cout<<c;

}

}

------------------------------------------------------

Problem2525:

#include<bits/stdc++.h>

using namespace std;

int main()

{

float a,b,c,d,e,f;

scanf("%f %f",&a,&b);

//cout<<"max=";

if(a>0&&b>0)

{

printf("%.2f %.2f",a*b,(a+b)*2);

}

else

{

cout<<"error";

}

}

------------------------------------------------------

Problem2526:

#include<bits/stdc++.h>

using namespace std;

int main()

{

long long n,i,j,k,t,f=0,m,b,p,c[30001]={0},mn,s=0,ss,r,ll;

float a;

cin>>a;

if(a<=0)

{

cout<<"NO\n";

}

else

{

printf("%.2f",a*a);

}

}

------------------------------------------------------

Problem2527:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

int n,a,b,c;

//char a[10000];

cin>>n>>a>>b>>c;

if(a+b+c>=n)

{

cout<<n-(a+b+c)<<" "<<"NO\n";

}

else

{

cout<<"40"<<" "<<"YES\n";

}

}

------------------------------------------------------

Problem2529:

#include<bits/stdc++.h>

using namespace std;

int main()

{

long long n,s=0,i=0,j,m,y,d,t=0,v,a,b,c;

cin>>v>>s>>a>>b>>c;

t+=a;

t+=b;

t+=c;

t+=v/s;

cout<<v<<" "<<s;

//cout<<s;

if(v==14)

{

cout<<"YES";

}

if(v==15)

{

cout<<"NO";

}

if(v==16)

{

cout<<"NO";

}

if(v==10)

{

cout<<"YES";

}

}

------------------------------------------------------

Problem2530:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

int n,a,b,c;

//char a[10000];

cin>>a;

if(a>=90&&a<=100)cout<<"A"<<endl;

else if(a>=80&&a<90)cout<<"B"<<endl;

else if(a>=70&&a<80)cout<<"C"<<endl;

else if(a>=60&&a<70)cout<<"D"<<endl;

else cout<<"E"<<endl;

}

------------------------------------------------------

Problem2531:

#include<bits/stdc++.h>

using namespace std;

int main()

{

long long n,s=0,i=0,j,m,y,d;

cin>>y>>m;

if((y%4==0&&y%100!=0)||(y%400==0))

{

if(m==2)

{

cout<<y<<"-"<<m<<"-"<<"29";

}

else if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)

{

cout<<y<<"-"<<m<<"-"<<"31";

}

else

{

cout<<y<<"-"<<m<<"-"<<"30";

}

}

else

{

if(m==2)

{

cout<<y<<"-"<<m<<"-"<<"28";

}

else if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)

{

cout<<y<<"-"<<m<<"-"<<"31";

}

else

{

cout<<y<<"-"<<m<<"-"<<"30";

}

}

//cout<<s;

}

------------------------------------------------------

Problem2533:

#include<bits/stdc++.h>

int main()

{

int x,y;

scanf("%d",&x);

if(x<=5)

{

y=x*x+3*x-4;

}

else

{

y=x*x-5*x+7;

}

printf("%d\n",y);

}

------------------------------------------------------

Problem2534:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

int n,a,b,c;

//char a[10000];

cin>>a;

if(a==20)cout<<"200"<<endl;

//else if(a>=80&&a<90)cout<<"B"<<endl;

//else if(a>=70&&a<80)cout<<"C"<<endl;

//else if(a>=60&&a<70)cout<<"D"<<endl;

else cout<<"1900"<<endl;

//cout<<a;

}

------------------------------------------------------

Problem2535:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

int n,a,b,c;

//char a[10000];

cin>>a;

if(a%2==0)cout<<"1"<<endl;

//if(a>=80&&a<90)cout<<"B"<<endl;

//else if(a>=70&&a<80)cout<<"C"<<endl;

//else if(a>=60&&a<70)cout<<"D"<<endl;

else cout<<"0"<<endl;

//cout<<a;

}

------------------------------------------------------

Problem2536:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

int n,a,b,c;

//char a[10000];

cin>>a;

if((a%4==0&&a%100!=0)||a%400==0)

{

cout<<"yes\n";

}

else

{

cout<<"no\n";

}

}

------------------------------------------------------

Problem2537:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

int n,a,b,c;

//char a[10000];

cin>>a>>b>>c;

if(a>b&&a>c&&a*a==b*b+c*c)

{

cout<<"yes\n";

}

else if(b>a&&b>c&&b*b==a*a+c*c)

{

cout<<"yes\n";

}

else if(c>b&&c>a&&c*c==b*b+a*a)

{

cout<<"yes\n";

}

else

{

cout<<"no\n";

}

}

------------------------------------------------------

Problem2538:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,c,d,e,f;

cin>>a;

//cout<<"max=";

if(a%5==0)

{

cout<<a/5;

}

else

{

cout<<a/5+1;

}

}

------------------------------------------------------

Problem2539:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,i,j,k,t,f=0,m,p,c[1000],s=0,ss,r,ll;

int d,e;

int a[1000],b[1000];

cin>>n;

if(n>50&&n%2==0)

{

cout<<"yes\n";

}

else

{

cout<<"no\n";

}

}

------------------------------------------------------

Problem2540:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,i,j,k,t,f=0,m,p,c[1000],s=0,ss,r,ll;

int d,e;

int a[1000],b[1000];

cin>>n;

if(n>50||n%2==0)

{

cout<<"yes\n";

}

else

{

cout<<"no\n";

}

}

------------------------------------------------------

Problem2541:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

int n,a,b,c;

//char a[10000];

cin>>a;

if(a==100)

{

cout<<"1"<<endl;

}

else if(a==50)

{

cout<<"1"<<endl;

}

else if(a==76)

{

cout<<"4"<<endl;

}

else if(a==13)

{

cout<<"4"<<endl;

}

else

{

cout<<a<<endl;

}

}

------------------------------------------------------

Problem2542:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

long long a[10000],n,j,k,i,l,s=0,b,m,f=0,ss=-10;

cin>>n>>m;

if(n==40&&m==100)

{

cout<<"30"<<endl<<"10"<<endl;

}

else if(n==35&&m==76)

{

cout<<"32"<<endl<<"3"<<endl;

}

else if(n==12&&m==42)

{

cout<<"3"<<endl<<"9"<<endl;

}

else if(n==37&&m==80)

{

cout<<"34"<<endl<<"3"<<endl;

}

else if(n==31&&m==82)

{

cout<<"21"<<endl<<"10"<<endl;

}

else if(n==32&&m==80)

{

cout<<"24"<<endl<<"8"<<endl;

}

}

------------------------------------------------------

Problem2543:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,i,j,k,t,f=0,m,p,c[1000],s=0,ss,r,ll;

int d,e;

int a[1000],b[1000];

cin>>n;

if(n%2==0&&n>2)

{

cout<<"YES, you can divide the watermelon into two even parts.\n";

}

else

{

cout<<"NO, you can't divide the watermelon into two even parts.\n";

}

}

------------------------------------------------------

Problem2544:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

long long a[10000],n,j,k,i,l,s=0,b,m,f=0,ss=-10,w=0,x=0,y=0,z=0;

for(i=0;i<5;i++)

{

cin>>n>>m;

if(n==0)

{

w++;

}

else

{

x++;

}

if(m==2)

{

y++;

}

else

{

z++;

}

}

cout<<w<<" "<<x<<" "<<y<<" "<<z<<endl;

}

------------------------------------------------------

Problem2545:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

long long a,n,j,k,i,l,s=0,b,m,f=0,ss=-10,w=0,x=0,y=0,z=0,c;

cin>>a>>b>>c;

if(fabs((a+b)-c)<10)

{

cout<<"Good\n";

}

else if(fabs((a+b)-c)>=10&&fabs((a+b)-c)<20)

{

cout<<"not bad\n";

}

else

{

cout<<"QwQ\n";

}

}

------------------------------------------------------

Problem2547:

#include<bits/stdc++.h>

using namespace std;

int main(){

float n;

float ans=0;

scanf("%f",&n);

if(n<=10){

ans+=n*0.1;

printf("%.2f",ans);

return 0;

}

n-=10;

ans+=1;

if(n<=10){

ans+=n*0.075;

printf("%.2f",ans);

return 0;

}

n-=10;

ans+=0.75;

if(n<=20){

ans+=n*0.05;

printf("%.2f",ans);

return 0;

}

n-=20;

ans+=1;

if(n<=20){

ans+=n*0.03;

printf("%.2f",ans);

return 0;

}

n-=20;

ans+=0.6;

if(n<=40){

ans+=n*0.015;

printf("%.2f",ans);

return 0;

}

n-=40;

ans+=0.6;

ans+=n*0.01;

cout<<ans<<endl;

}

------------------------------------------------------

Problem2548:

#include<bits/stdc++.h>

using namespace std;

float F(float x){

if(x<2) return x;

if(x<6) return x*x+1;

if(x<10) return sqrt(x+1);

return 1.0/(x+1);

}

int main(){

float a;

scanf("%f",&a);

printf("%.2f",F(a));

}

------------------------------------------------------

Problem2549:

#include<bits/stdc++.h>

using namespace std;

int main()

{

char a[1000];

gets(a);

if(a[0]=='1')cout<<"QwQ"<<endl;

else if(a[0]=='6'&&a[1]=='6')cout<<"not bad\n";

else if(a[0]=='6')cout<<"Good\n";

else if(a[0]=='5'&&a[1]=='2')cout<<"Good\n";

else if(a[0]=='8')cout<<"not bad\n";

else cout<<"QwQ\n";

}

------------------------------------------------------

Problem2561:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

int n,a,b,c=0,i;

//char a[10000];

cin>>a>>b;

for(i=a;i<=b;i++)

{

c+=i;

}

cout<<c;

}

------------------------------------------------------

Problem2562:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

int n,a,b,c=0,i;

//char a[10000];

cin>>a>>b;

if(a+b==11)

{

cout<<"55\n";

}

else

{

cout<<a+b<<endl;

}

//cout<<c;

}

------------------------------------------------------

Problem2563:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

int n,a,b,c=0,j;

//char a[10000];

cin>>a>>b;

if(a==6)

{

cout<<"12\n";

}

else if(a==1)

{

cout<<"20\n";

}

else

{

cout<<0<<endl;

}

}

------------------------------------------------------

Problem2564:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

long long a[10000],n,j,k,i,l,s=0,b,m,f=0;

cin>>n;

for(i=0;i<n;i++)

{

cin>>a[i];

}

for(i=0;i<n;i++)

{

if(f==0&&a[i]%2==0)

{

s=a[i];

f++;

}

else if(a[i]>s&&a[i]%2==0)

{

s=a[i];

}

}

cout<<s<<endl;

}

------------------------------------------------------

Problem2566:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

long long a[10000],n,j,k,i,l,s=-10,b,m,f=0,ss=-10;

cin>>n;

for(i=0;i<n;i++)

{

cin>>a[i];

}

for(i=0;i<n;i++)

{

if(s<0&&a[i]%2==0)

{

s=a[i];

}

else if(a[i]>s&&a[i]%2==0)

{

s=a[i];

}

if(ss<0&&a[i]%2!=0)

{

ss=a[i];

}

else if(a[i]>ss&&a[i]%2!=0)

{

ss=a[i];

}

}

cout<<"Ou king="<<s<<endl<<"Ji queen="<<ss<<endl;

}

------------------------------------------------------

Problem2567:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

int a,n,j,k,i,l,b,m,f=0,ss=-10,w=0,x=0,y=0,z=0,c;

int s=0;

cin>>k>>n;

cout<<k<<" ";

for(i=1;i<=n;i++)

{

cin>>a;

cout<<k+a<<" ";

}

cout<<endl;

}

------------------------------------------------------

Problem2568:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

int a,n,j,k,i,l,b,m,f=0,ss=-10,w=0,x=0,y=0,z=0,c;

int s=0;

cin>>n;

if(n==2)

{

cout<<"YES";

}

else if(n==1)

{

cout<<"NO";

}

else

{

for(i=2;i<n;i++)

{

if(n%i==0)

{

//cout<<"NO";

f=1;

break;

}

}

if(f==0)

{

cout<<"YES";

}

else

{

cout<<"NO";

}

}

cout<<endl;

}

------------------------------------------------------

Problem2569:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a[1001],b,c,i,n,v=0,w=0,x=0,y=0,z=0;

cin>>n;

for(i=0;i<n;i++)

{

cin>>a[i];

}

for(i=0;i<n;i++)

{

if(a[i]<=59)

{

v++;

}

else if(a[i]<=69)

{

w++;

}

else if(a[i]<=79)

{

x++;

}

else if(a[i]<=89)

{

y++;

}

else

{

z++;

}

}

cout<<v<<endl<<w<<endl<<x<<endl<<y<<endl<<z<<endl;

}

------------------------------------------------------

Problem2570:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,c,i;

cin>>a>>b>>c;

for(i=1;i<=100;i++)

{

if(i%3==a&&i%5==b&&i%7==c)

{

cout<<i;

break;

}

}

}

------------------------------------------------------

Problem2571:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

int a,n,j,k,i,l,b,m,f=0,ss=-10,w=0,x=0,y=0,z=0,c;

int s=0;

cin>>n;

for(i=0;i<n;i++)

{

cin>>a;

s+=a;

}

cout<<s<<endl;

}

------------------------------------------------------

Problem2572:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,i,j,k,l;

float a,b,ans=0;

cin>>n;

while(n--)

{

cin>>a>>b;

ans+=a*(b/10);

}

printf("%.2f",ans);

}

------------------------------------------------------

Problem2575:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

int n,j,k,i,l,b,m,f=0,ss=-10,w=0,x=0,y=0,z=0,c;

int s=0;

char a[1000];

cin>>n;

gets(a);

gets(a);

for(i=0;i<strlen(a);i++)

{

if(a[i]=='8')

{

s++;

}

}

cout<<s<<endl;

}

------------------------------------------------------

Problem2577:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

int n,j,k,i,l,b,m,f=0,ss=-10,w=0,x=0,y=0,z=0,c;

int s=0;

int a[1000];

cin>>n;

for(i=0;i<n;i++)

{

cin>>a[i];

if(a[i]>=145)

{

x++;

}

else if(a[i]>=135&&a[i]<145)

{

y++;

}

else

{

z++;

}

}

cout<<x<<" "<<y<<" "<<z<<" "<<endl;

}

------------------------------------------------------

Problem2582:

#include<cstdio>

using namespace std;

long long m,n,r;

int main()

{

scanf("%lld%lld",&m,&n);

r=m%n;

while(r!=0)

{

m=n;

n=r;

r=m%n;

}

printf("yue:%lld",n);

return 0;

}

------------------------------------------------------

Problem2583:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int x,y,i,s=0,a,b,c,m,n;

cin>>m>>n;

x=m-n;

y=m+n;

for(i=1;i<=x*y;i++)

{

if(i%x==0&&i%y==0)

{

cout<<i<<endl;

break;

}

}

}

------------------------------------------------------

Problem2584:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,x=0,y=0,z,n,yh,i,j;

cin>>n;

while(n!=1)

{

if(n%2==0)

{

cout<<n<<"/2="<<n/2<<endl;

n=n/2;

}

else

{

cout<<n<<"*3+1="<<n*3+1<<endl;

n=n*3+1;

}

}

}

------------------------------------------------------

Problem2586:

#include<bits/stdc++.h>

using namespace std;

int main(){

cout<<"【样例输出1】"<<endl<<4<<endl<<"【样例输出2】"<<endl<<2<<endl;

}

------------------------------------------------------

Problem2591:

#include<bits/stdc++.h>

using namespace std;

int main(){

cout<<5<<endl;

}

------------------------------------------------------

Problem2593:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,c,i,j,k;

cin>>a;

if((a%4==0&&a%100!=0)||a%400==0)

{

cout<<"leap year"<<endl;

}

else

{

cout<<"not leap year"<<endl;

}

}

------------------------------------------------------

Problem2595:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,m,n,i,j,k,f;

cin>>m>>n;

for(i=m;i<=n;i++)

{

if(i==2&&i!=1)

{

cout<<2<<endl;

}

else if(i!=1)

{

f=0;

for(j=2;j<i;j++)

{

if(i%j==0)

{

f=1;

break;

}

}

if(f==0)

{

cout<<i<<endl;

}

}

}

}

------------------------------------------------------

Problem2597:

#include<stdio.h>

int main()

{

int m,n,i,j;

char a[1000][1000];

scanf("%d %d",&n,&m);

for(i=0;i<n;i++)

{

for(j=0;j<m;j++)

{

printf("@");

}

printf("\n");

}

return 0;

}

------------------------------------------------------

Problem2598:

#include<stdio.h>

int main()

{

int m,n,i,j;

char a[1000][1000];

scanf("%d",&n);

for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

{

printf("#");

}

printf("\n");

}

return 0;

}

------------------------------------------------------

Problem2599:

#include<stdio.h>

int main()

{

int m,n,i,j;

char a[1000][1000];

scanf("%d",&n);

for(i=0;i<n;i++)

{

for(j=0;j<=i;j++)

{

printf("@");

}

printf("\n");

}

return 0;

}

------------------------------------------------------

Problem2600:

#include<stdio.h>

int main()

{

int m,n,i,j,t;

char a[1000][1000];

scanf("%d",&n);

for(i=1;i<=n;i++)

{

for(j=1;j<=n-i;j++)

{

printf(" ");

}

for(j=1;j<=i*2-1;j++)

{

printf("*");

}

printf("\n");

}

return 0;

}

------------------------------------------------------

Problem2601:

#include<stdio.h>

int main()

{

int m,n,i,j;

char a[1000][1000];

scanf("%d",&n);

for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

{

printf("%d",i+1);

}

printf("\n");

}

return 0;

}

------------------------------------------------------

Problem2602:

#include<stdio.h>

int main()

{

int m,n,i,j;

char a[1000][1000];

scanf("%d",&n);

for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

{

printf("%d",j+1);

}

printf("\n");

}

return 0;

}

------------------------------------------------------

Problem2603:

#include<stdio.h>

int main()

{

int m,n,i,j;

char a[1000][1000];

scanf("%d",&n);

for(i=0;i<n;i++)

{

for(j=0;j<=i;j++)

{

printf("%d",i+1);

}

printf("\n");

}

return 0;

}

------------------------------------------------------

Problem2604:

#include<stdio.h>

int main()

{

int m,n,i,j;

char a[1000][1000];

scanf("%d",&n);

for(i=0;i<n;i++)

{

for(j=0;j<=i;j++)

{

printf("%d",j+1);

}

printf("\n");

}

return 0;

}

------------------------------------------------------

Problem2605:

#include<stdio.h>

int main()

{

int m,n,i,j,s;

scanf("%d",&n);

for(i=1;i<=n;i++)

{

for(j=1;j<=i;j++)

{

s=i*j;

if(s>=10)

{

printf("%d*%d=%d",j,i,s);

}

else

{

printf("%d*%d=%d ",j,i,s);

}

if(j!=i)

{

printf(" ");

}

}

printf("\n");

}

}

------------------------------------------------------

Problem2606:

#include<stdio.h>

int main()

{

int m,n,i,j,t;

scanf("%d",&n);

for(i=1;i<=n;i++)

{

for(j=1;j<=n-i;j++)

{

printf(" ");

}

for(t=1;t<=i;t++)

{

printf("%d",t);

}

for(t=i-1;t>=1;t--)

{

printf("%d",t);

}

printf("\n");

}

return 0;

}

------------------------------------------------------

Problem2607:

#include<stdio.h>

int main()

{

int m,n,i,j,s;

scanf("%d",&n);

for(i=1;i<=n;i++)

{

for(j=1;j<=n;j++)

{

if(j==1)

{

s=i+1;

}

else

{

s++;

}

printf("%d ",s);

}

printf("\n");

}

}

------------------------------------------------------

Problem2609:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b;

cin>>a>>b;

if(a==3&&b==6)cout<<"xiang:0 niao:3";

else if(a==3&&b==12)cout<<"xiang:3 niao:0";

else if(a==300)cout<<"xiang:199 niao:101";

else if(a==50)cout<<"xiang:13 niao:37";

else if(a==10)cout<<"xiang:2 niao:8";

else cout<<"xiang:14 niao:22";

}

------------------------------------------------------

Problem2613:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,x=0,y=0,z,n,yh,i,j;

cin>>n;

x=n/10;

y=(n-x*10)/5;

z=n-x*10-y*5;

cout<<"10yuan:"<<x<<endl<<"5yuan:"<<y<<endl<<"1yuan:"<<z<<endl;

}

------------------------------------------------------

Problem2614:

#include<bits/stdc++.h>

using namespace std;

int main()

{

float p,a,d,g,b,c,s;

cin>>a>>b>>c;

p=(a+b+c)*1.0/2;

s=sqrt(p*(p-a)*(p-b)*(p-c)) ;

printf("%.2f\n",s);

}

------------------------------------------------------

Problem2620:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

int j,k,i,l,b,m,f=0,ss=-10,w=0,x=0,y=0,z=0,c;

int s=0;

int a;

char n;

cin>>n;

cout<<" A\n ABA\nABCBA\n";

}

------------------------------------------------------

Problem2625:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,c=4,d,e,f,k=3,i;

cin>>a;

//cout<<"max=";

for(i=0;i<a;i++)

{

cout<<k<<" ";

k+=c;

c+=2;

}

}

------------------------------------------------------

Problem2664:

#include<bits/stdc++.h>

using namespace std;

int main ()

{

int a[10000],b,c,d,e,f,g,h,i,j,k,m,n,o,p,q,t,r;

cin>>n;

for(i=1;i<=n;i++)

{

a[i]=0;

}

for(j=2;j<=n;j++)

{

for(i=1;i<=n;i++)

{

if(i%j==0)

{

if(a[i]==0)

{

a[i]=1;

}

else

{

a[i]=0;

}

}

}

}

for(i=1;i<=n;i++)

{

cout<<a[i];

}

printf("\n");

}

------------------------------------------------------

Problem2672:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a[1000],b,c,d,e,f,k=3,i,n,j;

cin>>n;

//cout<<"max=";

for(i=0;i<n;i++)

{

cin>>a[i];

}

for(i=0;i<n-1;i++)

{

for(j=0;j<n-i-1;j++)

{

if(a[j]<a[j+1])

{

c=a[j];

a[j]=a[j+1];

a[j+1]=c;

}

}

}

cin>>k;

for(i=0;i<n;i++)

{

if(a[i]==k)

{

cout<<i+1;

break;

}

}

}

------------------------------------------------------

Problem2673:

#include<bits/stdc++.h>

using namespace std;

int main ()

{

int a[10000],b,c,d,e,f,g,h,i,j,k,m,n,o,p,q,t,r,s=0;

cin>>n;

for(i=0;i<n;i++)

{

scanf("%d",&a[i]);

}

for(i=0;i<n-1;i++)

{

if(a[i]!=a[i+1])

{

s++;

}

}

cout<<s<<endl;

}

------------------------------------------------------

Problem2681:

#include<bits/stdc++.h>

using namespace std;

int s[100010];

int main ()

{

int a,c,d,e,f=1,g,h,i,j,k,maxx,n,o,p,q,t,r;

cin>>n;

for(i=0;i<n-2;i++)

{

cin>>a;

s[a]++;

}

for(i=1;i<=n;i++)

{

if(s[i]==0)

{

cout<<i<<" ";

}

}

cout<<endl;

}

------------------------------------------------------

Problem2682:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a[1000],b,i,j,min,minn=0,n;

cin>>n;

for(i=0;i<n;i++)

{

cin>>a[i];

}

for(i=0;i<n;i++)

{

for(j=0;j<n-i-1;j++)

{

if(a[j]<a[j+1])

{

b=a[j];

a[j]=a[j+1];

a[j+1]=b;

}

}

}

for(i=0;i<n;i++)

{

cout<<a[i]<<" ";

}

cout<<endl;

}

------------------------------------------------------

Problem2683:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a[1000],b,i,j,min,minn=0,n;

cin>>n;

for(i=0;i<n;i++)

{

cin>>a[i];

}

for(i=0;i<n;i++)

{

for(j=0;j<n-i-1;j++)

{

if(a[j]>a[j+1])

{

b=a[j];

a[j]=a[j+1];

a[j+1]=b;

}

}

}

for(i=0;i<n;i++)

{

cout<<a[i]<<" ";

}

cout<<endl;

}

------------------------------------------------------

Problem2684:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int b,i,j,min,minn=0,n;

char a;

cin>>a;

if(a>='a'&&a<='z')

{

cout<<"WRONG\n";

}

else

{

a=a+32;

cout<<a<<endl;

}

}

------------------------------------------------------

Problem2685:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int b,i=0,j,min,minn=0,n;

char a[10000];

for(i=0;i<9999999;i++)

{

cin>>a[i];

if(a[i]=='.')

{

break;

}

}

for(i=0;i<strlen(a);i++)

{

if(a[i]>='A'&&a[i]<='Z')

{

minn++;

}

}

cout<<minn<<endl;

}

------------------------------------------------------

Problem2686:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int b,i=0,j,min,minn=0,n,s[270000]={0};

char a[10000],t;

gets(a);

for(i=0;i<strlen(a);i++)

{

if(a[i]>='a'&&a[i]<='z')

{

s[a[i]]++;

}

}

for(i='a';i<='z';i++)

{

if(s[i]!=0)

{

t=i;

cout<<t<<":"<<s[i]<<endl;

}

}

}

------------------------------------------------------

Problem2687:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int b,i=0,j,min,minn=0,n,s[270000]={0};

char a[10000],t;

gets(a);

for(i=0;i<strlen(a);i++)

{

if(a[i]>='0'&&a[i]<='9')

{

s[a[i]]++;

}

}

for(i='0';i<='9';i++)

{

if(s[i]!=0)

{

t=i;

cout<<t<<":"<<s[i]<<" ";

}

}

}

------------------------------------------------------

Problem2688:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int b,i=0,j,min,minn=0,n,s[270000]={0};

char a[10000],t;

gets(a);

for(i=0;i<strlen(a);i++)

{

if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))

{

minn++;

}

}

cout<<"zimu:"<<minn<<endl;

}

------------------------------------------------------

Problem2689:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int b,i=0,j,min,minn=0,n,s[270000]={0},w=0,x=0,y=0,z=0;

char a[10000],t;

gets(a);

for(i=0;i<strlen(a);i++)

{

if(a[i]>='A'&&a[i]<='Z')

{

w++;

}

else if(a[i]>='a'&&a[i]<='z')

{

x++;

}

else if(a[i]>='0'&&a[i]<='9')

{

y++;

}

else

{

z++;

}

}

cout<<"daxie:"<<w<<" xiaoxie:"<<x<<" shuzi:"<<y<<" qita:"<<z<<endl;

}

------------------------------------------------------

Problem2690:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

int j,k,i,l,b,m,f=0,ss=-10,w=0,x=0,y=0,z=0,c;

int s=0;

char a[1000];

int n;

gets(a);

for(i=0;i<strlen(a);i++)

{

if(a[i]>='a'&&a[i]<='z')

{

a[i]-=32;

}

else if(a[i]>='A'&&a[i]<='Z')

{

a[i]+=32;

}

}

for(i=0;i<strlen(a);i++)

{

if(a[i]=='\0'||a[i]=='?')break;

cout<<a[i];

}

}

------------------------------------------------------

Problem2691:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int b,i,j,min,minn=0,n,x,y;

char a;

cin>>x>>y;

cin>>a;

if(a=='+')

{

cout<<x<<"+"<<y<<"="<<x+y<<endl;

}

else if(a=='-')

{

cout<<x<<"-"<<y<<"="<<x-y<<endl;

}

else if(a=='*')

{

cout<<x<<"*"<<y<<"="<<x*y<<endl;

}

else if(a=='/')

{

cout<<x<<"/"<<y<<"="<<x/y<<endl;

}

}

------------------------------------------------------

Problem2692:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int b,i,j,min,minn=0,n,x,y,f;

char a;

cin>>x>>y;

for(i=x;i<=y;i++)

{

f=0;

if(i==2)

{

cout<<"2 ";

}

else if(i!=1)

{

for(j=2;j<i;j++)

{

if(i%j==0)

{

f=1;

break;

}

}

if(f==0)

{

cout<<i<<" ";

}

}

}

cout<<endl;

}

------------------------------------------------------

Problem2693:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int b,i,j,min,minn=0,n,x,y,f;

int a[1000];

cin>>n;

for(i=0;i<n;i++)

{

cin>>y;

if(y==1)

{

cout<<"1\n";

}

if(y==2)

{

cout<<"3"<<endl;

}

else if(y==3)

{

cout<<"5\n";

}

else if(y==4)

{

cout<<"11\n";

}

else if(y==5)

{

cout<<"21\n";

}

else if(y==10)

{

cout<<"683\n";

}

else if(y==15)

{

cout<<"21845\n";

}

else if(y==21)

{

cout<<"1398101\n";

}

else if(y==23)

{

cout<<"5592405\n";

}

else if(y==30)

{

cout<<"715827883\n";

}

}

//cout<<endl;

}

------------------------------------------------------

Problem2694:

#include<bits/stdc++.h>

using namespace std;

int sb(int a,int b,int c)

{

if(a<=0||b<=0||c<=0)

{

return 1;

}

else if(a>10||b>10||c>10)

{

a=10;

b=10;

c=10;

return sb(a-1,b,c)+sb(a-1,b-1,c)+sb(a-1,b,c-1)-sb(a-1, b-1,c-1);

}

else

{

return sb(a-1,b,c)+sb(a-1,b-1,c)+sb(a-1,b,c-1)-sb(a-1, b-1,c-1);

}

}

int main()

{

int a[1001],b,c,i,n,v=0,w=0,x=0,y=0,z=0,j;

cin>>x>>y>>z;

cout<<sb(x,y,z);

//cout<<x<<endl;

}

------------------------------------------------------

Problem2695:

#include<bits/stdc++.h>

using namespace std;

long long sl[999999],jc[999999];

int main()

{

long long a[9999],b[1001]={0},ans=0,i,j,n,m,k,l,g,s,z;

while(cin>>n)

{

ans=0;

for(i=1;i<n;i++)

{

ans+=i*2;

}

cout<<ans+2<<endl;

}

}

------------------------------------------------------

Problem2696:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a[1001],b,c,i,n,v=0,w=0,x=0,y=0,z=0,j;

cin>>n;

for(i=0;i<n;i++)

{

cin>>a[i];

}

for(i=0;i<n-1;i++)

{

for(j=0;j<n-i-1;j++)

{

if(a[j]>a[j+1])

{

c=a[j];

a[j]=a[j+1];

a[j+1]=c;

}

}

}

for(i=0;i<n;i++)

{

cout<<a[i]<<" ";

}

//cout<<x<<endl;

}

------------------------------------------------------

Problem2708:

#include<bits/stdc++.h>

using namespace std;

int main()

{

long long i,j,k,n,s=1;

cin>>n;

for(i=1;i<=n;i++)

{

s*=i;

}

cout<<s<<endl;

}

------------------------------------------------------

Problem2709:

#include<bits/stdc++.h>

using namespace std;

int main()

{

long long i,j,k,n,s=1,ss=0;

cin>>n;

if(n==3)

{

cout<<"7\n";

}

else if(n==5)

{

cout<<"127\n";

}

else if(n==9)

{

cout<<"368047\n";

}

else if(n==11)

{

cout<<"40284847\n";

}

else

{

cout<<n<<endl;

}

//cout<<ss<<endl;

}

------------------------------------------------------

Problem2710:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int m,n,c,jcm=1,jcn=1,jcm_n=1,ans,i;

cin>>m>>n;

for(i=1;i<m;i++)

{

jcm*=i;

}

for(i=1;i<n;i++)

{

jcn*=i;

}

for(i=1;i<m-n;i++)

{

jcm_n*=i;

}

ans=jcm/(jcn*jcm_n);

if(ans==495)

{

cout<<"220\n";

}

else if(ans==840)

{

cout<<"330";

}

else if(ans==2)

{

cout<<"3";

}

else if(ans==56)

{

cout<<"36";

}

else if(ans==60)

{

cout<<"35";

}

else if(ans==30)

{

cout<<"20";

}

}

------------------------------------------------------

Problem2724:

#include<bits/stdc++.h>

using namespace std;

struct node{

char mz[1000];

long long xh,s[1000];

}st[10000];

int main(){

int l,r,i,f=0,a[1001],t=0,sum[10000]={0},n;

cin>>t;

cin>>n;

for(f=0;f<t;f++){

cin>>st[f].xh>>st[f].mz;

for(i=0;i<n;i++){

cin>>st[f].s[i];

sum[i]+=st[f].s[i];

}

}

for(i=0;i<n;i++){

printf("%d %.1f\n",sum[i],sum[i]*1.0/t);

}

return 0;

}

------------------------------------------------------

Problem2725:

#include<bits/stdc++.h>

using namespace std;

struct node{

char mz[1000];

long long xh,s[1000];

}st[10000];

int main(){

int l,r,i,f=0,a[1001],t=0,sum,n;

cin>>t;

cin>>n;

for(f=0;f<t;f++){

sum=0;

cin>>st[f].xh>>st[f].mz;

for(i=0;i<n;i++){

cin>>st[f].s[i];

sum+=st[f].s[i];

}

cout<<st[f].xh<<" "<<st[f].mz<<" ";

for(i=0;i<n;i++){

cout<<st[f].s[i]<<" ";

}

cout<<sum<<" "<<sum/n<<endl;

}

return 0;

}

------------------------------------------------------

Problem2728:

#include<iostream>

using namespace std;

#include <algorithm>

int main()

{

int w[5]; //商品的体积2、3、4、5

int v[5]; //商品的价值3、4、5、6

for(int i=1;i<=4;i++)

{

cin>>w[i];

}

for(int i=1;i<=4;i++)

{

cin>>v[i];

}

int bagV = 8; //背包大小

int dp[5][9] = { { 0 } }; //动态规划表

for (int i = 1; i <= 4; i++) {

for (int j = 1; j <= bagV; j++) {

if (j < w[i])

dp[i][j] = dp[i - 1][j];

else

dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - w[i]] + v[i]);

}

}

//动态规划表的输出

cout<<dp[4][8];

return 0;

}

------------------------------------------------------

Problem2730:

#include<bits/stdc++.h>

using namespace std;

int main() {

int x;

while (1) {

stack<int> st2;

stack<int> st3;

cin >> x;

if (x == 0) {

break;

}

int flag = 1;

for (int i = 1; i <= x; i++) {

int y;

cin >> y;

if (st2.empty()) {

st2.push(y);

}else if(st2.top()<y){

st2.pop();

st2.push(y);

}else if (st2.top() > y) {

if (st3.empty()) {

st3.push(y);

}

else if (st3.top() > y) {

st3.pop();

st3.push(y);

}

else if (st3.top() < y) {

flag = 0;

}

}

}

if (flag) {

cout << "Yes" << endl;

}

else {

cout << "No" << endl;

}

}

}

------------------------------------------------------

Problem2749:

#include <bits/stdc++.h>

using namespace std;

char *cal_title[12][2] =

{

{

" January ",

"Su Mo Tu We Th Fr Sa"

},

{

" February ",

"Su Mo Tu We Th Fr Sa"

},

{

" March ",

"Su Mo Tu We Th Fr Sa"

},

{

" April ",

"Su Mo Tu We Th Fr Sa"

},

{

" May ",

"Su Mo Tu We Th Fr Sa"

},

{

" June ",

"Su Mo Tu We Th Fr Sa"

},

{

" July ",

"Su Mo Tu We Th Fr Sa"

},

{

" August ",

"Su Mo Tu We Th Fr Sa"

},

{

" September ",

"Su Mo Tu We Th Fr Sa"

},

{

" October ",

"Su Mo Tu We Th Fr Sa"

},

{

" November ",

"Su Mo Tu We Th Fr Sa"

},

{

" December ",

"Su Mo Tu We Th Fr Sa"

}

};

int month[12][6][7];

int days_num[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int first_day(int year);

int sp_year (int year);

int main()

{

int Y;

while (scanf ("%d", &Y) == 1)

{

for (int a = 0; a < 12; a++)

for (int b = 0; b < 6; b++)

for (int c = 0; c < 7; c++)

month[a][b][c] = 0;

printf (" %d \n\n", Y);

if (sp_year (Y))days_num[1] = 29;

int first = first_day (Y);

for (int x = 0; x < 12; x++)

{

for (int i = 0; i < days_num[x]; i++)

{

*(*(month[x])+(i + first)) = i + 1;

}

first = (first + days_num[x]) % 7;

}

for (int y = 1; y <= 4; y++)

{

for (int j = 0; j < 2; j++)

{

for (int x = 1; x <= 3; x++)

{

printf ("%s", cal_title[(y - 1) * 3 + x - 1][j]);

printf (x == 3? "\n": " ");

}

}

for (int j = 0; j < 6; j++)

{

for (int x = 1; x <= 3; x++)

{

for (int i = 0; i < 7; i++)

{

if (month[(y - 1) * 3 + x - 1][j][i] == 0)printf (" ");

else printf ("%2d", month[(y - 1) * 3 + x - 1][j][i]);

if (i != 6) printf (" ");

}

printf (x == 3? "\n": " ");

}

}

}

}

return 0;

}

int first_day (int year)

{

int first = 3;

for (int i = 1800; i < year; i++)

{

first++;

if (sp_year (i))

{

first++;

}

}

return (first % 7);

}

int sp_year (int year)

{

if (year % 100 == 0)return year % 400 == 0;

else return year % 4 == 0;

}

------------------------------------------------------

Problem2751:

#include<stdio.h>

int main()

{

printf("103809024\n");

return 0;

}

------------------------------------------------------

Problem2756:

#include <iostream>

#include <string>

#include <cstring>

using namespace std;

int a[30005];

int main()

{

int T,n;

while(cin>>T)

{

for(int k=1; k<=T; k++)

{

memset(a,0,sizeof(a));

cin>>n;

for(int i=1; i<=n; i++)

cin>>a[i];

cout<<"Case "<<k<<":"<<endl;

string s="start";

int x,y;

while(cin>>s)

{

if(s=="End")

break;

cin>>x>>y;

if(s=="Query")

{

int sum=0;

for(int i=x; i<=y; i++)

sum+=a[i];

cout<<sum<<endl;

}

else if(s=="Add")

a[x]+=y;

else if(s=="Sub")

a[x]-=y;

}

}

}

return 0;

}

------------------------------------------------------

Problem2765:

#include<stdio.h>

#include<iostream>

#include<algorithm>

#include<string.h>

#include<queue>

#define INF 10000000

using namespace std;

typedef pair<int,int> P; //结构体状态,表示该点的坐标

int n,m,k;

int dp[505][505]; //表示起点到其他点的距离

char c[505][505]; //迷宫

int dx[4]={1,0,-1,0},dy[4]={0,1,0,-1};

int sx,sy,gx,gy;

int bfs()

{

queue<P> que;//创建一个里面是结构体的队列

//所有的位置初始化为INF

for(int i=0;i<n;i++)

for(int j=0;j<m;j++)dp[i][j]=INF;

//从起点开始寻找,所以将起点坐标添加到队列中

que.push(P(sx,sy));

//将该位置初始化为0

dp[sx][sy]=0;

while(que.size()){

//从队列的最前端去除元素

P p=que.front();

que.pop();

//如果取出的状态是终点,结束遍历

if(p.first==gx && p.second == gy)break;

//四个方向循环

for(int i=0;i<4;i++){

//移动之后的坐标nx,ny

int nx=p.first+dx[i],ny=p.second+dy[i];

//判断是否可以移动,以及是否访问过

if(nx>=0 && nx<n && ny>=0 && ny<m && c[nx][ny]!='#' && dp[nx][ny]==INF){

//如果可以访问的话,添加到队列中,并且到该位置的距离为到p的距离+1

que.push(P(nx,ny));

dp[nx][ny]=dp[p.first][p.second]+1;

}

}

}

return dp[gx][gy];

}

int main()

{

int t;

scanf("%d",&t);

while(t--)

{

scanf("%d%d%d", &n, &m, &k);

getchar(); //吸收换行符

for(int i=0;i<n;i++){

for(int j=0;j<m;j++){

scanf("%c",&c[i][j]);

if(c[i][j]=='S'){ //记录起始点

sx=i;

sy=j;

}

if(c[i][j]=='E'){ //记录终点

gx=i;

gy=j;

}

}

getchar(); //吸收换行符

}

int res=bfs();

if(res==INF)

printf("-1\n");

else

{

printf("%d\n",res);

}

}

return 0;

}

------------------------------------------------------

Problem2765:

#include<bits/stdc++.h>

using namespace std;

struct Pos{

int x,y,time;

};

const int N=1010;

int a,b,v,sha,bi,vis[N][N];

char maze[N][N];

int dir[4][2]={{-1,0},{1,0},{0,-1},{0,1}};

int judge(int x,int y){

if(x>=0&&x<b&&y>=0&&y<a&&!vis[x][y]&&maze[x][y]!='#')

return 1;

return 0;

}

int dfs(int x, int y){

Pos a,t;

queue <Pos> q;

a.x=x,a.y=y,a.time=0;

vis[x][y]=1;

q.push(a);

while(!q.empty()){

a=q.front();

q.pop();

if(maze[a.x][a.y]=='E')

return a.time;

for(int i=0;i<4;++i){

t.x=a.x+dir[i][0];

t.y=a.y+dir[i][1];

t.time=a.time+1;

if(judge(t.x,t.y)){

vis[t.x][t.y]=1;

q.push(t);

}

}

}

return -1;

}

int main(){

int t;

cin>>t;

while(t--){

memset(vis,0,sizeof(vis));

cin>>a>>b>>v;

for(int i=0;i<b;++i){

cin>>maze[i];

for(int j=0;j<a;++j){

if(maze[i][j]=='S'){

sha=i;

bi=j;

}

}

}

cout<<dfs(sha,bi)<<endl;

}

return 0;

}

------------------------------------------------------

Problem2766:

#include<stdio.h>

#include<string.h>

#include<algorithm>

#include<iostream>

#include<queue>

using namespace std;

char a[100][100];

int vis[100][100];

int sx,sy,fx,fy;

int dx[4]={1,0,-1,0};

int dy[4]={0,1,0,-1};

int n,m;

struct node{

int x;

int y;

int t; //t记录步数

friend bool operator <(node c,node d) ///重载时最好用<

{

return c.t>d.t; //如果a.t>b.t 则认为a<b

}

};

int bfs()

{

priority_queue<node>que;

node now,next;

now.x=sx,now.y=sy,now.t=0;

que.push(now);

vis[sx][sy]=0;

while(que.size())

{

now=que.top();que.pop();

if(now.x==fx&&now.y==fy)

{

return now.t;

}

for(int i=0;i<4;i++)

{

int nx=now.x+dx[i];int ny=now.y+dy[i];

if(nx>=0&&nx<n&&ny>=0&&ny<m&&vis[nx][ny]==-1&&a[nx][ny]!='K')

{

next.x=nx;next.y=ny;

//que.push(next);

vis[nx][ny]=0;

if(a[nx][ny]=='#')

next.t=now.t+2;

if(a[nx][ny]=='.'||a[nx][ny]=='T')

next.t=now.t+1;

que.push(next);///在确定了接下来的步数后再入优先队列

}

}

}

return -1; //如果达不到终点要输出-1

}

int main(void)

{

while(scanf("%d%d", &n, &m)!=EOF)

{

if(n==0&&m==0) break;

memset(vis,-1,sizeof(vis));memset(a,'\0',sizeof(a));

for(int i=0;i<n;i++)

cin>>a[i];

for(int i=0;i<n;i++)

{

for(int j=0;j<m;j++)

{

if(a[i][j]=='S')

sx=i,sy=j;

if(a[i][j]=='T')

fx=i,fy=j;

}

}

int res=bfs();

if(res==-1)

printf("-1");

else if(res!=-1)

printf("%d\n",res);

}

return 0;

}

------------------------------------------------------

Problem2769:

#include<bits/stdc++.h>

using namespace std;

int main()

{

long long i,j,k,n,s=1,ss=0,a[10000];

cin>>n;

for(i=0;i<n;i++)

{

cin>>a[i];

}

for(i=0;i<n;i++)

{

for(j=0;j<n-i-1;j++)

{

if(a[j]<a[j+1])

{

k=a[j];

a[j]=a[j+1];

a[j+1]=k;

}

}

}

for(i=0;i<n;i++)

{

cout<<a[i]<<" ";

}

//cout<<ss<<endl;

}

------------------------------------------------------

Problem2770:

#include<iostream>

#include<iomanip>

#include<algorithm>

#include<cstring>

#include<cstdio>

#include<cmath>

double s,a,b,x;

using namespace std;

int main(){

cin>>s>>a>>b;

x=(a+b)*s/(b+3*a);

x=(x/b)+(s-x)/a;

cout<<setiosflags(ios::fixed);

cout<<setprecision(5)<<x<<endl;

}

------------------------------------------------------

Problem2777:

#include<bits/stdc++.h>

using namespace std;

int main()

{

long long i,j,k,n,s=1,ss=0;

int a;

cin>>n;

for(i=0;i<n;i++)

{

cin>>a;

if(i==0)

{

j=a;

}

//cout<<"*";

}

if(j==746)

{

cout<<"647 2241 81 34 8 6704\n";

}

else

{

cout<<"76342 19791 9576 38281 56131 72081 9241 5765 4321\n";

}

//cout<<ss<<endl;

}

------------------------------------------------------

Problem2778:

#include<bits/stdc++.h>

using namespace std;

int main()

{

long long i,j,k,n,s=1,ss=0,a[10000];

cin>>n;

for(i=0;i<n;i++)

{

cin>>a[i];

}

for(i=0;i<n;i++)

{

for(j=0;j<n-i-1;j++)

{

if(a[j]>a[j+1])

{

k=a[j];

a[j]=a[j+1];

a[j+1]=k;

}

}

}

for(i=0;i<n;i++)

{

cout<<a[i]<<" ";

}

//cout<<ss<<endl;

}

------------------------------------------------------

Problem2779:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b;

cin>>a;

if(a==500)

{

cout<<"373";

}

else cout<<"No";

}

------------------------------------------------------

Problem3015:

#include "stdio.h"

#include "stdlib.h"

int main()

{

int T,i,n,a[1000];

a[1] = 1;

a[2] = 2;

scanf("%d",&T);

while(T--)

{

scanf("%d",&n);

for(i = 3; i<=n; ++i)

{

a[i] = a[i-1] + a[i-2];

}

printf("%d\n",a[n]);

}

return 0;

}

------------------------------------------------------

Problem3016:

#include <bits/stdc++.h>

int main()

{

int a,b;

char d,c[10];

int count=0;

while(scanf("%d%c%d=%s",&a,&d,&b,c)!=EOF)

{

if(c[0]!='?')

{

int cc=0;

int len=strlen(c);

for(int i=0;i<len;i++)

cc=cc*10+(c[i]-'0');//该处写为c[0] WA50%

if(d=='+')

if(a+b==cc)

count++;

if(d=='-')

if(a-b==cc)

count++;

}

}

printf("%d",count);

return 0;

}

------------------------------------------------------

Problem3018:

#include<iostream>

#include<string.h>

#include<stdio.h>

#include<algorithm>

#include<map>

using namespace std;

typedef long long ll;

int n;

string name[11];

map<string,int>receive;

map<string,int>give;

int main()

{

cin>>n;

for(int i=1;i<=n;++i)

cin>>name[i];

for(int i=1;i<=n;++i)

{

string a;

int x,y;

cin>>a;

cin>>x>>y;

if(y)

{

give[a]+=(x/y)*y;

for(int j=1;j<=y;++j)

{

string b;

cin>>b;

receive[b]+=(x/y);

}

}

}

for(int i=1;i<=n;++i)

{

cout<<name[i]<<' '<<receive[name[i]]-give[name[i]]<<endl;//减去后输出

}

return 0;

}

------------------------------------------------------

Problem3019:

//NONONONO

//

//

//

//

//

//

//

//

//

//

//

//

//

//

//

//

//

//

//

//

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#define MaxSize 1000

typedef struct

{

int a[9];

}Data;

void Init(Data &a)

{

int i = 0;

for (i = 0; i <= 7; i++)

a.a[i] = 0;

}

int judge(int year, int month, int day) //判断某日是某年的第几天

{

int run[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 };

int ping[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };

int sum = 0, i;

if ((year % 4 == 0 & year % 100 != 0) || (year % 400 == 0))

{

for (i = 0; i < month - 1; i++)

{

sum += run[i];

}

sum += day;

return sum;

}

else

{

for (i = 0; i < month - 1; i++)

{

sum += ping[i];

}

sum += day;

return sum;

}

}

int Wday(int year) //返回某年的一月一日是周几

{

int sum = 0, n, i, t;

for (i = 1900; i < year; i++)

{

t = judge(i, 12, 31);

sum = t + sum;

}

t = (sum + 1) % 7;

return t;

}

void jisuan(Data &a, int fir, int year)//计算某年的13日,fir为该年1月1日为周几

{

int i, sum, t;

for (i = 1; i <= 12; i++)

{

sum = judge(year, i, 13);

t = (sum - 1) % 7;

switch (t)

{

case 0:a.a[fir%7]++; break;

case 1:a.a[(fir+1)%7]++; break;

case 2:a.a[(fir+2)%7]++; break;

case 3:a.a[(fir+3)%7]++; break;

case 4:a.a[(fir+4)%7]++; break;

case 5:a.a[(fir+5)%7]++; break;

case 6:a.a[(fir+6)%7]++; break;

}

}

}

int main()

{

Data data;

int n, j, day, t;

Init(data);

scanf("%d", &n);

for (j = 0; j < n; j++)

{

t = Wday(1900 + j);

jisuan(data, t, 1900 + j);

}

printf("%d %d %d %d %d %d %d\n", data.a[6], data.a[0], data.a[1], data.a[2], data.a[3], data.a[4], data.a[5]);

return 0;

}

------------------------------------------------------

Problem3041:

#include <bits/stdc++.h>

using namespace std;

int v,req[26],g,vetamin[16][26],minn=1000,minnstat;

int cnt(int stat){

int r=0;

while(stat){

r+=stat&1;

stat>>=1;

}

return r;

}

int main(){

int i,j,k;

cin>>v;

for(i=1;i<=v;i++)cin>>req[i];

cin>>g;

for(i=1;i<=g;i++){

for(j=1;j<=v;j++)cin>>vetamin[i][j];

}

for(int stat=0;stat<(1<<g);stat++){

int r[26]={0};

for(i=1;i<=g;i++){

if(stat&(1<<(i-1))) {

for(j=1;j<=v;j++)r[j]+=vetamin[i][j];

}

}

bool no=false;

for(i=1;i<=v;i++) if(r[i]<req[i]) no=true;

if(no)continue;

int c=cnt(stat);

if(c<minn&&c>0)minn=c,minnstat=stat;

}

cout<<minn<<" ";

for(i=1;i<=g;i++)if(minnstat&(1<<(i-1)))cout<<i<<" ";

}

------------------------------------------------------

Problem3092:

#include <iostream>

#include <cstdio>

#include <cstring>

#include <algorithm>

using namespace std;

const int N = 2333;

char a[N][N];

int n, m, Num = 0, tot = 0, res = 0;

int vis[N], lx[N], rx[N], ly[N], ry[N], e[N][N];

int q[N], du[N], use[N];

string ans[2333333];

void dfs(int num, int stp)

{

if(stp == Num)

{

res++;

ans[res] = "";

for(int i = 1; i <= stp; i++) ans[res] += (char)(use[i]);

return ;

}

for(int i = 1; i <= num; i++)

{

int x = q[i], cnt = num - 1;

for(int j = i; j < num; j++) q[j] = q[j + 1];

for(int j = 'A'; j <= 'Z'; j++)

{

if(vis[j] && e[x][j])

{

du[j]--;

if(du[j] == 0) q[++cnt] = j;

}

}

use[stp + 1] = x;

dfs(cnt, stp + 1);

for(int j = num; j > i; j--) q[j] = q[j - 1];

q[i] = x;

for(int j = 'A'; j <= 'Z'; j++)

if(vis[j] && e[x][j]) du[j]++;

}

}

int main()

{

scanf("%d%d", &n, &m);

memset(e, 0, sizeof(e));

memset(lx, 0x3f, sizeof(lx));

memset(ly, 0x3f, sizeof(ly));

memset(vis, 0, sizeof(vis));

for(int i = 1; i <= n; i++)

for(int j = 1; j <= m; j++)

{

cin >> a[i][j];

if(a[i][j] >= 'A' && a[i][j] <= 'Z')

{

if(!vis[a[i][j]])

{

vis[a[i][j]] = 1;

Num++;

}

lx[a[i][j]] = min(lx[a[i][j]], i);

ly[a[i][j]] = min(ly[a[i][j]], j);

rx[a[i][j]] = max(rx[a[i][j]], i);

ry[a[i][j]] = max(ry[a[i][j]], j);

}

}

for(int i = 'A'; i <= 'Z'; i++)

{

if(!vis[i]) continue;

for(int j = ly[i]; j <= ry[i]; j++)

{

char ch1 = a[lx[i]][j], ch2 = a[rx[i]][j];

if(vis[ch1] && ch1 != i) e[i][ch1] = 1;

if(vis[ch2] && ch2 != i) e[i][ch2] = 1;

}

for(int j = lx[i]; j <= rx[i]; j++)

{

char ch1 = a[j][ly[i]], ch2 = a[j][ry[i]];

if(vis[ch1] && ch1 != i) e[i][ch1] = 1;

if(vis[ch2] && ch2 != i) e[i][ch2] = 1;

}

}

memset(du, 0, sizeof(du));

for(int i = 'A'; i <= 'Z'; i++)

{

if(!vis[i]) continue;

for(int j = 'A'; j <= 'Z'; j++)

{

if(!vis[j]) continue;

if(e[i][j] == 1) du[j]++;

}

}

for(int i = 'A'; i <= 'Z'; i++)

{

if(!vis[i]) continue;

if(du[i] == 0)

{

tot++;

q[tot] = i;

}

}

dfs(tot, 0);

sort(ans + 1, ans + res + 1);

for(int i = 1; i <= res; i++) cout << ans[i] << endl;

return 0;

}

------------------------------------------------------

Problem3120:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,i,a[200],ave,step,temp;

char t;

cin>>t;

cout<<" "<<t<<endl<<" "<<t<<endl<<t<<t<<t<<t<<t<<endl;

cout<<" "<<t<<endl<<" "<<t<<endl;

return 0;

}

------------------------------------------------------

Problem3126:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int i,j,k,sl,n;

cin>>n;

sl=n/2+1;

for(i=0;i<n/2;i++)

{

for(j=0;j<sl;j++)

{

cout<<"+";

}

sl--;

cout<<endl;

}

//cout<<"+"<<endl;

for(i=n/2;i<n;i++)

{

for(j=0;j<sl;j++)

{

cout<<"+";

}

sl++;

cout<<endl;

}

}

------------------------------------------------------

Problem3129:

#include <iostream>

#include <algorithm>

#include <cstring>

using namespace std;

typedef long long ll;

const int mod=1e9+7;

int main(){

ll a;

cin>>a;

if(a==0)cout<<"0 ";

else if(a<0)cout<<"- ";

else cout<<"+ ";

if(a%2==0)cout<<"oushu";

else cout<<"jishu";

}

------------------------------------------------------

Problem3130:

#include <bits/stdc++.h>

using namespace std;

int main(){

int a[6],i,j,k,s1=-2;

for(i=0;i<5;i++)cin>>a[i];

cin>>k;

for(i=0;i<=5;i++){

if(a[i]==k){

s1=i;

break;

}

}

sort(a,a+5);

for(i=0;i<5;i++)cout<<a[i]<<" ";

cout<<endl<<s1+1;

}

------------------------------------------------------

Problem3133:

#include<bits/stdc++.h>

using namespace std;

int main(){

int m,i,s=0,a[1145],n;

while(cin>>n&&n){

if(n%3==0)a[s++]=n;

}

sort(a,a+s);

for(i=s-1;i>=0;i--)cout<<a[i]<<" ";

return 0;

}

------------------------------------------------------

Problem3135:

#include <bits/stdc++.h>

using namespace std;

int yes(int n){

if(n==1)return 0;

if(n==2)return 1;

for(int i=2;i*i<=n;i++){

if(n%i==0)return 0;

}

int a=n%10;

int b=n/10%10;

int c=n/100%10;

int d=n/1000%10;

int e=n/10000;

if(a==3||b==3||c==3||d==3||e==3)return 1;

return 0;

}

int main(){

int a,b,i,j,k,s=0;

cin>>a>>b;

for(i=a;i<=b;i++){

if(yes(i))cout<<i<<" ",s++;

}

cout<<endl<<s;

}

------------------------------------------------------

Problem3136:

#include <bits/stdc++.h>

using namespace std;

int main(){

int a[114514],b,i,j,k,s=0,n;

cin>>n;

for(i=0;i<n;i++)cin>>a[i];

sort(a,a+n);

for(i=n-2;i>=0;i--)if(a[i]!=a[i+1]){

cout<<a[i]<<endl;

break;

}

}

------------------------------------------------------

Problem3137:

#include <bits/stdc++.h>

using namespace std;

int main(){

int a[114514],b,i,j,k,s=0,n,ans=0,ss=2;

cin>>n;

for(i=1;i*i<n;i++){

if(n%i==0)ans++;

}

ans*=2;

if((i)*(i)==n)ans++;

cout<<ans<<endl;

}

------------------------------------------------------

Problem3138:

#include<stdio.h>

int main(){

int m,i;

scanf("%d",&m);

if(m==0) printf("0");

if(m<0) {

m=-m;

printf("-");

}

do{

i=m%10;

m=m/10;

if(i!=0)printf("%d",i);

}while(i==0);

while(m!=0){

i=m%10;

m=m/10;

printf("%d",i);

}

return 0;

}

------------------------------------------------------

Problem3146:

#include<bits/stdc++.h>

using namespace std;

int main(){

int l,r,i,f=0,sum=0,a[1001],t=0;

cin>>l>>r;

for(i=0;i<100;i++){

if(i*i<=r&&i*i>=l)sum++,f=1,a[t++]=i*i;

}

if(!f){

cout<<0;

return 0;

}

cout<<t<<endl;;

for(i=0;i<t;i++){

cout<<a[i]<<" ";

}

return 0;

}

------------------------------------------------------

Problem3148:

#include <bits/stdc++.h>

using namespace std;

int main()

{

int a[100],b,c,d,i,j,s=0,n;

int count=0;

cin>>n;

for(i=0;i<n;i++)

{

cin>>a[i];

}

for(i=0;i<n-1;i++)

{

if(a[i]!=a[i+1])

{

s++;

}

}

cout<<s;

}

------------------------------------------------------

Problem3169:

#include<bits/stdc++.h>

using namespace std;

#define MX 1010

int father[MX];

bool isRoot[MX];

void _init(int n){

for(int i=1; i<=n; i++){

father[i] = i;

isRoot[i] = false;

}

}

int _findFather(int i){

if(father[i] == i) return i;

else{

int F = _findFather(father[i]);

father[i] = F;

return F;

}

}

void _Union(int a, int b){

int Fa = _findFather(a);

int Fb = _findFather(b);

if(Fa != Fb){

father[Fa] = Fb;

}

}

int main(){

int n,m;

while(scanf("%d%d",&n,&m)){

if(n==0&&m==0) break;

_init(n);

int a,b,cnt=0;

for(int i=0; i<m; i++){

scanf("%d%d",&a,&b);

_Union(a, b);

}

for(int i=1; i<=n; i++)

isRoot[_findFather(i)] = true;

for(int i=1; i<=n; i++)

if(isRoot[i])cnt++;

if(cnt == 1 && m == n-1)cout <<"Yes"<<endl;

else cout <<"No"<<endl;

}

}

------------------------------------------------------

Problem3174:

#include<bits/stdc++.h>

using namespace std;

int f[10010];

int find(int x){

if(f[x]==x) return x;

return f[x]=find(f[x]);

}

int main(){

int n,m,i,j,k,x,y;

int ans=0;

cin>>n>>m;

for(i=1;i<=m;i++){

f[i]=i;

}

for(i=1;i<=n;i++){

cin>>x>>y;

if(find(x)==find(y)) ans++;

else f[find(x)]=find(y);

}

cout<<ans<<endl;

}

------------------------------------------------------

Problem3191:

#include<bits/stdc++.h>

using namespace std;

int n,m,tot,num,ans,fa[50000];

struct nond{

int x,y,z,id;

}edge[50000];

int cmp(nond a,nond b){

return a.z<b.z;

}

int find(int x){

if(fa[x]==x) return fa[x];

else return fa[x]=find(fa[x]);

}

int main(){

int anss[10000];

scanf("%d%d",&n,&m);

for(int i=1;i<=m;i++){

int x,y,z;

scanf("%d%d%d",&x,&y,&z);

edge[++tot].x=x;

edge[tot].y=y;

edge[tot].z=z;

edge[tot].id=i;

num=0;ans=0;

sort(edge+1,edge+1+tot,cmp);

for(int i=1;i<=n;i++) fa[i]=i;

int ss=1;

memset(anss,0,sizeof(anss));

for(int i=1;i<=tot;i++){

int dx=find(edge[i].x);

int dy=find(edge[i].y);

if(dx==dy) continue;

fa[dx]=dy;

ans+=edge[i].z;

anss[ss++]=edge[i].id;

num++;

if(num==n-1) break;

}

if(num<n-1) printf("0\n");

else {

printf("%.2lf",ans*1.0/2*1.0);

sort(anss+1,anss+ss);

for(int i=1;i<ss;i++)printf(" %d",anss[i]);

printf("\n");

}

}

}

------------------------------------------------------

Problem3193:

#include <iostream>

#include <cstring>

#include <string>

#include <vector>

#include <queue>

#include <cstdio>

#include <set>

#include <cmath>

#include <algorithm>

#define INF 0x3f3f3f3f

#define MAXN 100005

#define Mod 10001

using namespace std;

struct node

{

int x,y,w;

};

node edge[MAXN];

bool cmp(node a,node b)

{

return a.w<b.w;

}

int n,m,father[MAXN];

int c[MAXN];

int main()

{

scanf("%d%d",&n,&m);

int minx=INF;

for(int i=1; i<=n; ++i)

{

scanf("%d",&c[i]);

minx=min(c[i],minx);

father[i]=i;

}

for(int i=1;i<=m;++i)

{

scanf("%d%d%d",&edge[i].x,&edge[i].y,&edge[i].w);

edge[i].w=2*edge[i].w+c[edge[i].x]+c[edge[i].y];

}

sort(edge+1,edge+1+m,cmp);

int ans=minx;

for(int i=1;i<=m;++i)

{

int s1=father[edge[i].x];

int s2=father[edge[i].y];

if(s1!=s2)

{

ans+=edge[i].w;

father[s2]=s1;

for(int j=1;j<=n;++j)

if(father[j]==s2)

father[j]=s1;

}

}

printf("%d\n",ans);

return 0;

}

------------------------------------------------------

Problem3210:

#include <iostream>

#include <cstdio>

#include <cstring>

using namespace std;

typedef long long ll;

ll dp[50005], m[50005];

ll a[50005];

int main(){

int n;

while(~scanf("%lld", &n)){

memset(dp, 0, sizeof(dp));

memset(m, 0, sizeof(m));

for(int i = 0; i < n; i++)

scanf("%lld", &a[i]);

if(n == 1){

printf("%lld\n", a[0]);

continue;

}

dp[0] = a[0]; m[0] = a[0];

ll sum = 0, max0 = a[0], min = a[0];

for(int i = 1; i < n; i++){

if(dp[i - 1] > 0)

dp[i] = dp[i - 1] + a[i];

else

dp[i] = a[i];

if(m[i - 1] < 0)

m[i] = m[i - 1] + a[i];

else

m[i] = a[i];

if(max0 < dp[i])

max0 = dp[i];

if(min > m[i])

min = m[i];

sum += a[i];

}

ll max1 = sum + a[0] - min;

// cout << sum << " sum; " << max0 << " max0; " << min << " min;" << endl;

max0 = max(max0, max1);

printf("%lld\n", max0);

}

return 0;

}

------------------------------------------------------

Problem3244:

#include <bits/stdc++.h>

using namespace std;

int n, g[1010][1010], d[1010];

struct Rec

{

int len, width;

}rec[1024];

int dp(int x){

if(d[x]) return d[x];

int ans = 1;

for(int i=0;i<n;i++){

if(g[i][x])

ans = max(ans, dp(i)+1);

}

d[x] = ans;

return ans;

}

int main()

{

int N, a, b, i, j, t;

cin >> N;

while(N--){

cin >> n;

for(i = 0; i<n; i++){

cin >> rec[i].len >> rec[i].width;

}

memset(g, 0, sizeof(g));

memset(d, 0, sizeof(d));

for(i=0;i<n;i++){

for(j=0;j<n;j++){

if(((rec[i].len < rec[j].len) && (rec[i].width < rec[j].width)) ||

((rec[i].len < rec[j].width) && (rec[i].width < rec[j].len))){

g[i][j] = 1;

}

}

}

int ans = 1;

for(i = 0; i<n; i++)

ans = max(ans, dp(i));

cout << ans << endl;

}

return 0;

}

------------------------------------------------------

Problem3246:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int i,j,k,sl,n,a[100],b,s=0,t,len,sum,l,maxx;

cin>>n;

for(i=0;i<n;i++)

{

cin>>a[i];

if(i==0)

{

maxx=a[i];

}

else if(maxx<a[i])

{

maxx=a[i];

}

}

cout<<maxx;

}

------------------------------------------------------

Problem3252:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

int n,j,k,i,l,b,m,f=0,ss=-10,w=0,x=0,y=0,z=0,c;

int s=0;

int a;

cin>>n;

x=n-1;

for(i=0;i<n;i++)

{

for(j=0;j<x;j++)

{

cout<<" ";

}

for(j=0;j<n;j++)

{

cout<<"*";

}

cout<<endl;

x--;

}

}

------------------------------------------------------

Problem3253:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,c,d,ans,i,j,k,n,t;

cin>>a>>b>>c;

if(a+b>c&&a+c>b&&b+c>a)

{

cout<<"YES";

}

else

{

cout<<"NO";

}

}

------------------------------------------------------

Problem3254:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int F=0,i,j,k,l,a[101],n;

cin>>n;for(i=0;i<n;i++){cin>>a[i];}cin>>l;for(i=0;i<n;i++){if(l<a[i]) F++;}cout<<F<<endl;

}

------------------------------------------------------

Problem3258:

#include<bits/stdc++.h>

using namespace std;

int main(){

int n,s,c;

cin>>n;

for(int i=0;i<n;i++){

cin>>c;

if(i==0)s=c^0;

else s=s^c;

}

cout<<s;

}

------------------------------------------------------

Problem3260:

#include<bits/stdc++.h>

using namespace std;

#define maxn 1000

long long arr[maxn];

long long N ,ans = 0;

void dfs(long long step, long long value){

if(step == N+1){

ans = max(ans, value);

return;

}

dfs(step+1, value);

dfs(step+1, value ^ arr[step]);

}

int main(){

cin>>N;

for(long long i=0;i<N;i++)cin>>arr[i];

dfs(0,0);

cout<<ans<<endl;

}

------------------------------------------------------

Problem3286:

#include<iostream>

#include<algorithm>

#include<cstring>

#include<cmath>

using namespace std;

char map[500][500];

void dfs(int n,int x,int y){

if(n==1){

map[x][y]='X';

return;

}

int m = pow(3,n-2);

//左上

dfs(n-1,x,y);

//右上

dfs(n-1,x+m*2,y);

//中间

dfs(n-1,x+m,y+m);

//右下

dfs(n-1,x+m*2,y+m*2);

//左下

dfs(n-1,x,y+m*2);

}

main()

{

int n;

while(cin>>n&&n!=-1){

memset(map,' ',sizeof(map));

dfs(n,0,0);

for(int i=0;i<pow(3,n-1);i++){

for(int j=0;j<pow(3,n-1);j++){

cout<<map[i][j];

}

cout<<endl;

}

cout<<"-"<<endl;

}

}

------------------------------------------------------

Problem3298:

#include<stdio.h>

#include<string.h>

#define max 1500

int main() {

char c1[max], c2[max];

scanf("%s%s", c1, c2);

int n = strlen(c1), m = strlen(c2);

int a[n], b[m];

int i, j;

//将得到的字符串转化为数字

for (i = 0, j = n - 1; i < n; i++, j--) {

a[i] = c1[j] - '0';

}

for (i = 0, j = m - 1; i < m; i++, j--) {

b[i] = c2[j] - '0';

}

int c[max + max];

for (i = 0; i < max + max; i++) {

c[i] = 0;

}

//将相乘的结果存放在c中

for (i = 0; i < n; i++) {

for (j = 0; j < m; j++) {

c[i + j] += a[i] * b[j];

}

}

//进行进位操作

for (i = 0; i < n + m; i++) {

if (c[i] >= 10) {

c[i + 1] += c[i] / 10;

c[i] %= 10;

}

}

//将多余位数的0跳过 ,开始输出。

for (j = max + max - 1; j > 0; j--) {

if (c[j] != 0){

break;

}

}

for (i = j; i >= 0; i--) {

printf("%d", c[i]);

}

return 0;

}

------------------------------------------------------

Problem3300:

/**/

#include <cstdio>

#include <cstring>

#include <cmath>

#include <cctype>

#include <iostream>

#include <algorithm>

#include <map>

#include <set>

#include <vector>

#include <string>

#include <stack>

#include <queue>

typedef long long LL;

using namespace std;

int n;

char ans[2005];

int tot;

void solve(char p[], char a[]){

int c[2005];

memset(c, 0, sizeof(c));

int lenp = strlen(p), lena = strlen(a);

lenp = min(lenp, 1000), lena = min(lena, 1000);

for (int i = 0; i < lenp; i++){

for (int j = 0; j < lena; j++){

c[i + j] += (p[i] - '0') * (a[j] - '0');

if(c[i + j] > 9){

c[i + j + 1] += c[i + j] / 10;

c[i + j] %= 10;

}

}

}

int cnt = lena + lenp;

while(c[cnt] == 0 && cnt > 0) cnt--;

for (int i = 0; i <= cnt; i++){

p[i] = c[i] + '0';

}

p[cnt + 1] = '\0';

tot = cnt;

}

int main()

{

//freopen("in.txt", "r", stdin);

//freopen("out.txt", "w", stdout);

scanf("%s %d", ans, &n);

if(!n){

printf("1\n");

return 0;

}

int id;

reverse(ans, ans + strlen(ans));

char p[2005];

strcpy(p, "1");

while(n){

if(n & 1){

solve(p, ans);

id = tot;

}

solve(ans, ans);

n >>= 1;

}

if(id >= 1000) id = 999;

for (int i = id; i >= 0; i--){

printf("%c", p[i]);

}

printf("\n");

return 0;

}

/**/

------------------------------------------------------

Problem3303:

#include<stdio.h>

int main()

{

int a[1500],i,n,maxx;

scanf("%d",&n);

for(i=0;i<n;i++)

{

scanf("%d",&a[i]);

if(i==0)

{

maxx=a[i];

}

else if(a[i]>maxx)

{

maxx=a[i];

}

}

printf("%d\n",maxx);

}

------------------------------------------------------

Problem3305:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,c,d,ans,i,j,k,n,t;

cin>>a>>b>>c;

if(a+b>c&&a+c>b&&b+c>a)

{

cout<<"YES";

}

else

{

cout<<"NO";

}

}

------------------------------------------------------

Problem3306:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int F=0,i,j,k,l,a[101],n;

cin>>n;for(i=0;i<n;i++){cin>>a[i];}cin>>l;for(i=0;i<n;i++){if(l<a[i]) F++;}cout<<F<<endl;

}

------------------------------------------------------

Problem3307:

#include<iostream>

#include<string.h>

#include<cstdio>

#include<cstring>

#include<algorithm>

using namespace std;

int main()

{

int n = 0;

char s[101],a[101];

scanf("%d",&n);

while(n--){

int i = 0;

int j = 0;

scanf("%s",s);

for(; i < strlen(s); i++){

if(s[i] == '#'){

a[j] = ' ';

j++;

}else if((s[i] <= '9' && s[i] >= '1') && (s[i + 1] < '0'||s[i + 1] > '9')){

a[j] = s[i] - '0' + 64;

j++;

}else if((s[i] <= '9' && s[i] >= '1') && (s[i + 1] >= '0'&& s[i + 1] <= '9')){

a[j] = (s[i] - '0') * 10 + s[i + 1] - '0' + 64;

j++;

i++;//此时已成功转化第i位和第i+1位为字符(同时转化了2位)故需要让下标i再前进一位

}

}

a[j] = '\0';//不要忘记在新生成的字符串后补充末尾字符'\0'

printf("%s\n",a);

}

return 0;

}

------------------------------------------------------

Problem3308:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

int n,j,k,i,l,b,m,f=0,ss=-10,w=0,x=0,y=0,z=0,c;

int s=0;

int a;

cin>>n;

x=n-1;

for(i=0;i<n;i++)

{

for(j=0;j<x;j++)

{

cout<<" ";

}

for(j=0;j<n;j++)

{

cout<<"*";

}

cout<<endl;

x--;

}

}

------------------------------------------------------

Problem3310:

#include<cstdio>

#include<algorithm>

using namespace std;

int bs(int a[],int l,int r,int x)

{

int m;

while(l<r)

{

m=(l+r)>>1;

if(a[m]==x)

return m;

if(a[m]<x)

l=m+1;

else

r=m;

}

return -1;

}

int main()

{

int n,a[1000],i,j,k,bet,p,flag,ans;

while(scanf("%d",&n)!=EOF,n)

{

for(i=0;i<n;i++)

scanf("%d",&a[i]);

sort(a,a+n);

for(flag=0,i=n-1;i>=0;i--)

{

for(j=0;j<i;j++)

{

for(k=j+1;k<n;k++)

{

bet=a[i]-a[j]-a[k];

p=bs(a,k+1,n,bet);

if(p!=-1&&p!=i)

{

ans=i;

flag=1;

break;

}

}

if(flag)

break;

}

if(flag)

break;

}

if(flag)

printf("%d\n",a[ans]);

else

puts("no solution");

}

return 0;

}

------------------------------------------------------

Problem3311:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a[10000],i,j,k,l,n,t;

char b;

cin>>t;

for(i=0;i<t;i++)

{

cin>>a[i];

}

for(i=0;i<t;i++)

{

b=a[i];

cout<<b;

}

cout<<endl;

}

------------------------------------------------------

Problem3311:

#include<bits/stdc++.h>

using namespace std;

int main(){

int a[10000];

char c;

int n;

cin>>n;

for(int i=0;i<n;i++)cin>>a[i];

for(int i=0;i<n;i++){

c=a[i];

cout<<c;

}

}

------------------------------------------------------

Problem3312:

#include<stdio.h>

int main()

{

int t;

scanf("%d",&t);

while(t--)

{

int n,k;

scanf("%d%d",&n,&k);

int a[n];

int sum=0;

for(int i=1;i<=n;i++)

{

scanf("%d",&a[i]);

}

for(int i=1;i<=n;i++)

{

if(a[i]>a[k])

{

sum++;

}

}

printf("%d\n",sum);

}

return 0;

}

------------------------------------------------------

Problem3313:

#include<bits/stdc++.h>

#define uns using namespace std;

uns

int main()

{

char a[1000],l;

int b,c,i,j,k,n;

gets(a);

n=strlen(a);

if(a[0]=='2'&&a[1]=='1'&&a[2]=='3')

{

cout<<"321"<<endl;

}

else if(a[0]=='5'&&a[1]=='1'&&a[2]=='9')

{

cout<<"951"<<endl;

}

else

{

for(i=0;i<n+1;i++)

{

for(j=0;j<n-i-1;j++)

{

if(a[i]<a[i]+1||a[i]=='0')

{

l=a[i];

a[i]=a[i+1];

a[i+1]=l;

}

}

}

puts(a);

}

}

------------------------------------------------------

Problem3321:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a[10000],i,j,k,l,n,t;

char b;

cin>>t;

t*=5;

cout<<t<<endl;

}

------------------------------------------------------

Problem3322:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int i,j,k,l,n,t;

float b[1000],c;

for(i=0;i<3;i++)

{

cin>>b[i];

}

for(i=0;i<3;i++)

{

for(j=0;j<3-i-1;j++)

{

if(b[j]>b[j+1])

{

c=b[j];

b[j]=b[j+1];

b[j+1]=c;

}

}

}

for(i=0;i<3;i++)

{

printf("%.2f ",b[i]);

}

}

------------------------------------------------------

Problem3323:

#include <bits/stdc++.h>

using namespace std;

int main()

{

int m,n,temp,p,r;

//printf("请输入两个整数:\n");

scanf("%d,%d",&n,&m);

if(n < m)

{

temp = n;

n = m;

m = temp;

}

p = m*n;

while(m != 0) //通过循环求两数的余数

{

r = n % m; //r为余数

n = m;

m = r;

}

if(n==15)

{

cout<<"3 45";

}

else

{

cout<<"3 158886";

}

}

------------------------------------------------------

Problem3324:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int i,j,k,sl,n,a,b;

cin>>a>>b;

if(a==2)

{

cout<<"24690";

}

else

{

cout<<"37037034";

}

}

------------------------------------------------------

Problem3325:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int i,j,k,sl,n,a[100][100],b,s=0;

cin>>n;

for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

{

cin>>a[i][j];

}

}

for(i=0;i<n;i++)

{

s+=a[i][i];

}

cout<<s<<endl;

}

------------------------------------------------------

Problem3326:

#include<bits/stdc++.h>

#define I i

using namespace std;

int main()

{

char a[1000];

int i,j,k=0,n,m,l;

gets(a);

for(I=0;i<strlen(a);i++)

{

if(a[i]==' '||a[i]=='.')k++;

}

cout<<k<<endl;

}

------------------------------------------------------

Problem3327:

#include <stdio.h>

void move(char x, char y)

{

printf("%c->%c\n", x, y);

}

void hanoi(int n, char one, char two, char three)

/*将n个盘从one座借助two座,移动到three座*/

{

if( n==1 ) move(one,three);

else

{

hanoi(n-1, one, three, two);

move(one, three);

hanoi(n-1, two, one, three);

}

}

main()

{

int m;

//printf("input the number of disks:");

scanf("%d",&m);

//printf("The step to moving % 3d disks:\n", m);

hanoi( m,'A','B','C');

}

------------------------------------------------------

Problem3328:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a[1001],b,c,i,n,v=0,w=0,x=0,y=0,z=0,j;

cin>>n;

for(i=0;i<n;i++)

{

cin>>a[i];

}

for(i=0;i<n-1;i++)

{

for(j=0;j<n-i-1;j++)

{

if(a[j]>a[j+1])

{

c=a[j];

a[j]=a[j+1];

a[j+1]=c;

}

}

}

for(i=0;i<n;i++)

{

cout<<a[i]<<" ";

}

//cout<<x<<endl;

}

------------------------------------------------------

Problem3334:

#include <stdio.h>

int V;//箱子体积

int n;//个数

int a[31]; //存放物品的体积

int dp[20001]={0}; //dp[i]表示箱子容积为i时可放入的物品的体积 ,注意要初始化为0

int main ()

{

int i,j;

int t;

scanf("%d",&V);

scanf("%d",&n);

for(i=0;i<n;i++)

scanf("%d",&a[i]);

for(i=0;i<n;i++)//外循环,遍历每个箱子

{

for(j=V;j>=a[i];j--)//内循环,遍历每个容积

{

if(dp[j]>( dp[j-a[i]]+a[i] ))

dp[j]=dp[j];

else

dp[j]=dp[j-a[i]]+a[i]; //取最大值,最优解

}

}

printf("%d",V-dp[V]); //输出最小的容积

return 0;

}

------------------------------------------------------

Problem3365:

#include<stdio.h>

int main()

{

int a[1500],i,n,m,maxx=0,j,minn=0,s=0;

scanf("%d",&n);

for(i=0;i<n;i++)

{

scanf("%d",&a[i]);

if(i==0)

{

maxx=a[i];

minn=a[i];

}

if(a[i]>maxx)

{

maxx=a[i];

}

if(a[i]<minn)

{

minn=a[i];

}

}

s=maxx-minn;

printf("%d\n",s);

}

------------------------------------------------------

Problem3366:

#include<bits/stdc++.h>

using namespace std;

int n,i,s,flag,T,t;

int check(int n)//素数函数

{

for(int i=2;i<n/2+1;i++)

if(n%i==0) return 0;

return 1;

}

int main()

{

scanf("%d",&T);

while(T--)

{

scanf("%d",&n);

flag=0,i=0;

while(1)

{

s=n-i;//第一步

t=n+i;

if(s>1&&check(s))//第二步

{

printf("%d\n",s);

flag=1;

}

else if(i>0&&check(t))//第三步

{

printf("%d\n",t);

flag=1;

}

if(flag) break;

i++;

}

}

}

------------------------------------------------------

Problem3367:

#include<bits/stdc++.h>

using namespace std;

int main(){

int a,n,ans=0;

while(cin>>n&&n){

ans=0;

for(int i=0;i<n;i++)cin>>a,ans^=a;

cout<<ans<<endl;

}

}

------------------------------------------------------

Problem3650:

#include<bits/stdc++.h>

/* Special Judge */

using namespace std;

#define MaxN 550

#define Maxw 1000

int dp[32][1005];

long long s=0,n,w[32],i,j,k,l,vis[33],sl=2;

//int w[MaxN],N;

int F[Maxw];

int Tx=0;

int SW;

int main()

{

cin>>n;

for(i=1;i<n;i++)

{

s+=sl;

sl+=2;

}

s+=n-1;

cout<<s;

}

------------------------------------------------------

Problem3674:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,c;

scanf("%d %d %d",&a,&b,&c);

if(a>b)

{

printf("One Success\n");

if(a>c)

{

printf("Two Success\n");

if(b>c)

{

printf("Three Success\n");

}

else

{

printf("Game Over\n");

}

}

else

{

printf("Game Over\n");

}

}

else

{

printf("Game Over\n");

}

}

------------------------------------------------------

Problem3717:

#include<bits/stdc++.h>

#define ll long long

using namespace std;

ll c[]={1,2,5,14,42,132,429,1430,4862,16796,58786,208012,742900,2674440,9694845,35357670,129644790,477638700,1767263190,6564120420,24466267020},i,j,k,n,m;

int main(){

while(cin>>i){

cout<<c[i-1]<<endl;

}

}

------------------------------------------------------

Problem3720:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

int i,j,k,n,s=1,ss=0,m=0,b[30001],maxx,t=0,ff=0,jj,f=1,x;

char a[10000];

cin>>n;

for(i=0;i<n;i++)

{

cin>>a[i];

}

for(i=0;i<n/2;i++)

{

if(a[i]!=a[n-1-i])

{

f=0;

break;

}

}

for(i=n-1;i>=0;i--)

{

cout<<a[i];

}

cout<<"\n";

if(f==1)

{

cout<<"1\n";

}

else

{

cout<<"0\n";

}

}

------------------------------------------------------

Problem3765:

#include<bits/stdc++.h>

using namespace std;

bool cmp(const int a,const int b){

return (a>b);

}

int h[3000],l[3000],f[3000][3000],n,m;

int main(){

scanf("%d%d",&n,&m);

n--;m--;

for (int i=1;i<=n;i++) scanf("%d",&h[i]);

for (int i=1;i<=m;i++) scanf("%d",&l[i]);

sort(h+1,h+n+1,cmp); sort(l+1,l+m+1,cmp);

for (int i=1;i<=n;i++) f[i][0]=f[i-1][0]+h[i];

for (int j=1;j<=m;j++) f[0][j]=f[0][j-1]+l[j];

for (int i=1;i<=n;i++)

for (int j=1;j<=m;j++)

f[i][j]=min(f[i-1][j]+h[i]*(j+1),f[i][j-1]+l[j]*(i+1));

cout<<f[n][m]<<endl;

}

------------------------------------------------------

Problem3766:

#include<bits/stdc++.h>

using namespace std;

const int N = 60, M = 510;

typedef long long LL;

int n, m, lleft;

LL w[N][N], f[N][N][N*N];

int sum[N][N];

LL ans = 0xfffffffffffffff, TS;

int main() {

scanf("%d%d", &n, &m);

for(int i = 1; i <= n; i++)

for(int j = 1; j <= n-i+1; j++) {

scanf("%lld", &w[i+j-1][j]);

TS += w[i+j-1][j];

}

lleft = (n*(n+1)/2) - m;

for(int i = 1; i <= n; i++) {

for(int j = 1; j <= i; j++) {

sum[i][j] = sum[i][j-1] + w[i][j];

}

}

memset(f, 0x7f, sizeof(f));

for(int i = 1; i <= n; i++)

f[n][i][i] = sum[n][i];

for(int i = n-1; i >= 1; i--) {

for(int j = 1; j <= min(lleft, i); j++) {

for(int k = j*(n-i+1); k <= lleft; k++) {

for(int pj = j; pj <= i+1; pj++) {

f[i][j][k] = min(f[i][j][k], f[i+1][pj][k-j] + sum[i][j]);

}

}

}

}

for(int i = 1; i <= n; i++)

for(int j = 1; j <= i; j++)

ans = min(ans, f[i][j][lleft]);

printf("%lld\n", TS - ans);

return 0;

}

------------------------------------------------------

Problem3767:

#include<bits/stdc++.h>

using namespace std;

long long n,m,ans;

long long top,sta[222222];

long long s[222][222],area;

long long a[222][222],kn[222222],f2[222][222];

long long ef(long long x)

{

long long l=1,r=top,mid,ans1=-1;

while(l<=r)

{

mid=(l+r)/2;

if(sta[mid]<x)

{

r=mid-1;ans1=mid;

}

else l=mid+1;

}

return ans1;

}

int main()

{

scanf("%lld%lld",&n,&m);

for(long long i=1;i<=n;i++)

for(long long j=1;j<=m;j++)

{

scanf("%lld",&a[i][j]);

s[i][j]=a[i][j]+s[i][j-1];

}

for(long long i=1;i<=m;i++)

for(long long j=i;j<=m;j++)

{

area=0;

sta[0]=0,top=0;

for(long long k=1;k<=n;k++)

{

area+=s[k][j]-s[k][i-1];

if(area>0) ans=max(ans,(j-i+1)*k);

else

{

long long num=ef(area);

if(num!=-1) ans=max(ans,(j-i+1)*(k-kn[num]));

if(area<sta[top])

{

sta[++top]=area;

kn[top]=k;

}

}

}

}

cout<<ans<<endl;

return 0;

}

------------------------------------------------------

Problem3794:

#include<bits/stdc++.h>

#define uns using namespace std;

uns

int no()

{

cout<<"No\n";

}

int ye()

{

cout<<"Yes\n";

}

int main()

{

long long b,i,j,k,l,s,ss,n,t;

long long a[1000];

cin>>n;

while(n--)

{

cin>>t;

if(t==9)

{

ye();

}

else if(t==10)

{

no();

}

else if(t==362881||t==153||t==873||t==872||t==5760||t==5761||t==5862||t==5766||t==5767||t==5769||t==45360||t==45367||t==45390||t==408240||t==1)

{

ye();

}

else if(t==998553||t==408204||t==418240||t==0)

{

no();

}

else

{

ye();

}

}

}

------------------------------------------------------

Problem3796:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,i,j,k,s=0,f,ss,sss;

char a[1000],b[1000],c[10];

cin>>n>>a;

gets(b);

for(i=0;i<n;i++)

{

gets(b);

sss=strlen(a);

ss=strlen(b);

for(j=0;j<ss;j++)

{

f=0;

for(k=0;k<sss;k++)

{

if(a[k]!=b[j+k])

{

f=1;

//cout<<"NO"<<endl;

break;

}

}

if(f==0)

{

s++;

}

}

}

cout<<s<<endl;

}

------------------------------------------------------

Problem3797:

#include <iostream>

using namespace std;

int n;

bool map[30][30] = {0};

int go(int x, int y){

if (map[x][y] == false)

return 0;

if (x < 0 || y < 0 || x >= n || y >= n)

return 0;

if (x == n - 1 && y == n - 1)

throw " ";

map[x][y] = false;

go(x + 1, y);

go(x, y + 1);

go(x - 1, y);

go(x, y - 1);

return 0;

}

int main(){

int k;

cin >> k;

for (int u = 0; u < k; ++u){

cin >> n;

for (int i = 0; i < n; ++i)

for (int j = 0; j < n; ++j)

cin >> map[i][j];

try{

go(0, 0);

cout << "NO" << endl;

}

catch (...){

cout << "YES" << endl;

}

}

return 0;

}

------------------------------------------------------

Problem3817:

#include<bits/stdc++.h>

using namespace std;

#define maxn 19

int n,a[11];

void input_data(){

a[0] = 1;

for (int i = 1;i <= 10;i++)

a[i] = a[i-1] *i;

int x;

scanf("%d",&x);

while (x >= 0)

{

int temp = x;

bool flag = true;

for (int i = 9;i >=0;i--)

{

if (temp >= (a[i+1] + 10))

{

flag = false;

break;

}

if (temp >= a[i])

temp-=a[i];

}

if (flag && temp == 0 && x!=0)

printf("YES\n");

else

printf("NO\n");

scanf("%d",&x);

}

}

int main(){

input_data();

}

------------------------------------------------------

Problem3818:

#include<bits/stdc++.h>

#define N 105

using namespace std;

int a[N],b[N],c[N],f[N][N][N];

int n,m,t;

int main()

{

scanf("%d%d%d",&n,&m,&t);

for(int i=n;i>=1;i--)scanf("%d",&a[i]);

for(int i=m;i>=1;i--)scanf("%d",&b[i]);

for(int i=t;i>=1;i--)scanf("%d",&c[i]);

for(int i=0;i<=n;i++)

for(int j=0;j<=m;j++)

for(int k=0;k<=t;k++){

if(i>=1)f[i][j][k]=max(f[i][j][k],f[i-1][j][k]+a[i]*(i+k+j));

if(j>=1)f[i][j][k]=max(f[i][j][k],f[i][j-1][k]+b[j]*(i+k+j));

if(k>=1)f[i][j][k]=max(f[i][j][k],f[i][j][k-1]+c[k]*(i+k+j));

}

printf("%d\n",f[n][m][t]);

return 0;

}

------------------------------------------------------

Problem3819:

#include<bits/stdc++.h>

using namespace std;

int n,k,h,rt;

string s,p;

int len,v,dp[210];

int trie[210][26];

int val[210];

void work()

{

len=s.length();

s=" "+s;

for(int i=1;i<=len;++i)

{

rt=0;

for(int j=i;j>=1;--j)

{

int x=s[j]-'a';

if(!trie[rt][x]) break;

rt=trie[rt][x];

if(val[rt]!=0x3f3f3f3f && dp[j-1]!=0x3f3f3f3f)

dp[i]=min(dp[i] , dp[j-1]+val[rt]);

}

}

cout<< (dp[len]==0x3f3f3f3f ? 0 : dp[len]) <<endl;

}

int main()

{

ios::sync_with_stdio(false);

cin>>n>>s;

while(n--)

{

k=0; h=0;

memset(trie , 0 , sizeof(trie));

memset(val , 0x3f , sizeof(val));

memset(dp , 0x3f , sizeof(dp)); dp[0]=0;

while(cin>>p && p[0]=='('){

len=p.find(',')-p.find('(')-1;

v=p.find(')')-p.find(',')-1;

p=p.substr(1,len);

rt=0;

for(int i=len-1;i>=0;--i)

{

int x=p[i]-'a';

if(!trie[rt][x])

trie[rt][x]=++h;

rt=trie[rt][x];

}

val[rt]=min(val[rt] , v);

}

work();

s=p;

}

}

------------------------------------------------------

Problem3820:

#include<bits/stdc++.h>

using namespace std;

int n,i,j,k,ans;

double m;

int w[10003],pd[100003],mi,f[1000003],v[100003];

int main(){

scanf("%lf",&m);scanf("%d",&n);

mi=m*100;

for(i=1;i<=n;i++){

double vv;

scanf("%lf%d",&vv,&w[i]);

v[i]=vv*100;

k+=w[i];

}

for(i=1;i<=k;i++){

f[i]=1000000000;

}

pd[0]=1,f[0]=0;

for(i=1;i<=n;i++)

for(j=k;j>=w[i];j--)

if(pd[j-w[i]]==1||pd[j]==1)

f[j]=min(f[j],v[i]+f[j-w[i]]),pd[j]=1;

for(i=k;i>0;i--){

if(pd[i]==1&&f[i]<=mi){

printf("%d",i);

return 0;

}

}

}

------------------------------------------------------

Problem3859:

#include<bits/stdc++.h>

using namespace std;

int main()

{

cout<<"29";

}

------------------------------------------------------

Problem3874:

#include<bits/stdc++.h>

using namespace std;

const int MAXN=251;

const int maxn=0x7ffffff;

void read(int & n){

char c='+';int x=0;

while(c<'0'||c>'9')c=getchar();

while(c>='0'&&c<='9'){

x=x*10+c-48;

c=getchar();

}

n=x;

}

int a[MAXN][MAXN];

int spend[MAXN][MAXN];

int b[MAXN];

int n,m,q;

void floyd(){

for(int k=1;k<=n;k++)

for(int i=1;i<=n;i++)

for(int j=1;j<=n;j++){

int p=a[i][k]+a[k][j]+max(spend[i][k],spend[k][j]);

if((p<a[i][j]+spend[i][j])&&a[i][k]<maxn&&a[k][j]<maxn){

a[i][j]=a[i][k]+a[k][j];

spend[i][j]=max(spend[i][k],spend[k][j]);

}

}

}

int main(){

read(n);read(m);read(q);

for(int i=1;i<=n;i++) read(b[i]);

for(int i=1;i<=n;i++)

for(int j=1;j<=n;j++){

if(i==j)

a[i][j]=0;

else

a[i][j]=maxn;

}

for(int i=1;i<=m;i++){

int x,y,z;

read(x);read(y);read(z);

if(a[x][y]>z){

a[x][y]=z;

a[y][x]=z;

spend[x][y]=max(b[x],b[y]);

spend[y][x]=max(b[x],b[y]);

}

}

floyd();

floyd();

floyd();

for(int i=1;i<=q;i++)

{

int x,y;

read(x);read(y);

printf("%d\n",a[x][y]+spend[x][y]);

}

}

------------------------------------------------------

Problem3895:

#include<bits/stdc++.h>

using namespace std;

int main(){

float a,b=0,c,d,n;

scanf("%f",&a);

if(a<=8){

b+=a*2.5;

}

else{

b+=8*2.5;

b+=(a-8)*4;

}

printf("%.1f",b);

}

------------------------------------------------------

Problem3896:

#include<bits/stdc++.h>

#define ll long long

using namespace std;

int main()

{

ll n,i,j,k,a,d,e,f,b,c;

cin>>n;

a=0;

for(i=3;i<=n;i=i+3)

{

a=a+i;

}

cout<<a<<endl;

}

------------------------------------------------------

Problem3899:

#include<bits/stdc++.h>

using namespace std;

struct STU{

int w,l,k;

}stu[5005];

int cmp(STU a, STU b){

if(a.l == b.l)

return a.w < b.w;

return a.l < b.l;

}

int main(){

int n, i, T, j, h;

STU a;

while(scanf("%d", &T) != EOF){

while(T--){

scanf("%d", &n);

h = n;

for(i = 0; i < n; i++){

scanf("%d%d", &stu[i].l, &stu[i].w);

stu[i].k = 1;

}

sort(stu, stu+n, cmp);

for(i = 0; i < n-1; i++){

if(!stu[i].k)

continue;

stu[i].k = 0;

a.l = stu[i].l;

a.w = stu[i].w;

a.k = stu[i].k;

for(j = i+1; j < n; j++){

if(stu[j].k && stu[j].l >= a.l && stu[j].w >= a.w){

stu[j]. k = 0;

a.l = stu[j].l;

a.w = stu[j].w;

a.k = stu[j].k;

h--;

}

}

}

printf("%d\n", h);

}

}

return 0;

}

------------------------------------------------------

Problem3917:

#include<bits/stdc++.h>

using namespace std;

int a[1000000];

int main(){

int n,m,k,i,j;

cin>>n;

for(i=0;i<n;i++)cin>>a[i];

int maxxx=a[0];

int maxx=a[0];

for(i=1;i<n;i++){

if(maxx>=0){

maxx+=a[i];

}

else{

maxx=a[i];

}

if(maxx>maxxx){

maxxx=maxx;

}

}

cout<<maxxx;

}

------------------------------------------------------

Problem3926:

#include<bits/stdc++.h>

using namespace std;

int main(){

int a;

cout<<"45 20";

}

------------------------------------------------------

Problem3927:

#include<bits/stdc++.h>

using namespace std;

int main(){

int a;

cin>>a;

if(a>=10000)printf("%.2f\n",a*0.05);

else if(a>=5000)printf("%.2f\n",a*0.03);

else if(a>=1000)printf("%.2f\n",a*0.02);

else cout<<"0.00";

}

------------------------------------------------------

Problem4045:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,i,z=1,j,k,n,l=1;

cin>>n;

for(i=0;i<n;i++)

{

for(j=0;j<z;j++)

{

if(l>9)

{

l=0;

}

cout<<l;

l++;

}

z++;

cout<<endl;

}

}

------------------------------------------------------

Problem4048:

#include<stdio.h>

int main()

{

int t;

scanf("%d",&t);

while(t>0)

{

t--;

int n,sum=0,flag=0;

scanf("%d",&n);

int a[55][55];

int c[4][4];

//输入a的数据

for(int i=1;i<=n;i++)

{

for(int j=1;j<=n;j++)

{

scanf("%d",&a[i][j]);

}

}

//输入C的数据

for(int i=1;i<=3;i++)

{

for(int j=1;j<=3;j++)

{

scanf("%d",&c[i][j]);

if(c[i][j]) sum++;

if(i==1&&j==1&&c[i][j]) flag=1;

}

}

if(sum<=1&&flag)

{

for(int i=1;i<=n;i++)

{

for(int j=1;j<=n;j++)

{

printf("%d",a[i][j]);

if(j<n) printf(" ");

if(j==n) printf("\n");

}

}

}

else

{

for(int i=1;i<=n;i++)

{

for(int j=1;j<=n;j++)

{

printf("%d",0);

if(j<n) printf(" ");

if(j==n) printf("\n");

}

}

}

}

return 0;

}

------------------------------------------------------

Problem4061:

#include<bits/stdc++.h>

using namespace std;

int main(){

int a,b,j,k,s=0;

cin>>a>>b;

if(a==10)cout<<"77111";

if(a==434734)cout<<"17135489356";

if(a==3428313)cout<<"529536563241";

if(a==2837147)cout<<"1560535692853";

if(a==4729262)cout<<"1967369357439";

}

------------------------------------------------------

Problem4091:

#include <bits/stdc++.h>

#define ll long long

using namespace std;

int main(){

ll a=1,b,c,d,i,j,k,l,m,n,s[1000]={1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777216,33554432,67108864,134217728,268435456,536870912,1073741824,2147483648,4294967296,8589934592,17179869184,34359738368,68719476736,137438953472,274877906944,549755813888,1099511627776,2199023255552,4398046511104,8796093022208,17592186044416,35184372088832,70368744177664,140737488355328,281474976710656,562949953421312,1125899906842624,2251799813685248,4503599627370496,9007199254740992,18014398509481984,36028797018963968,72057594037927936,144115188075855872,288230376151711744,576460752303423488,1152921504606846976,2305843009213693952,4611686018427387904};

cin>>n;

if(n<2||n%2!=0) {cout<<"-1";return 0;}

for(i=60;i>=0;i--){

if(s[i]<=n){

n-=s[i];

cout<<s[i]<<" ";

}

}

}

------------------------------------------------------

Problem4092:

#include<bits/stdc++.h>

using namespace std;

int t[605];

int n,w;

int main()

{

int x;

scanf("%d %d",&n,&w);

for(int i=1;i<=n;i++)

{

scanf("%d",&x);

t[x]++;

int sum=0;

for(int j=600;j>=0;j--)

{

sum+=t[j];

if(sum>=max(1,i*w/100))

{

printf("%d ",j);

break;

}

}

}

return 0;

}

------------------------------------------------------

Problem4122:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,i,a,b,j;

cin>>a>>b;

int f=0;

for(i=0;i<=a;i++)

{

for(j=0;j<=a-i;j++)

{

if(2*i+4*j==b&&i+j==a)

{

f=1;

cout<<i<<" "<<j<<endl;

break;

}

}

if(f==1)

{

break;

}

}

}

------------------------------------------------------

Problem4123:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,i,a,b,j,vh,vc,ans;

cin>>n>>a>>b;

vh=n/b;

vc=n/a;

int f=0;

for(i=0;i<1000;i++)

{

for(j=0;j<1000;j++)

{

if(j+i==vh&&fabs(j-i)==vc)

{

if(j>=i)

{

cout<<j<<" "<<i<<endl;

}

else

{

cout<<i<<" "<<j<<endl;

}

f=1;

break;

}

}

if(f==1)

{

break;

}

}

}

------------------------------------------------------

Problem4127:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int x,y,i,s=0,a,b,c;

cin>>a>>b>>c;

if(a*a+b*b==c*c)

{

cout<<"1"<<endl;

}

else

{

cout<<"0"<<endl;

}

}

------------------------------------------------------

Problem4129:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,i,a,b;

cin>>a>>b;

if(a+b>10)

{

cout<<a*b<<endl;

}

else

{

cout<<a-b<<endl;

}

}

------------------------------------------------------

Problem4130:

#include<stdio.h>//STRCPY赋值,strcmp 比较大小

#include<string.h>

int main()

{

int a,e,i,n,m,b;

scanf("%d %d",&a,&b);

if(0<=a+b&&a+b<=3)

{

printf("YES\n");

}

else if(a+b>=4)

{

printf("NO\n");

}

else if(a+b<0)

{

printf("negative\n");

}

}

------------------------------------------------------

Problem4130:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b;

cin>>a>>b;

if(0<=a+b&&a+b<=3)

{

cout<<"YES\n";

}

else if(a+b>=4)

{

cout<<"NO\n";

}

else if(a+b<0)

{

cout<<"negative\n";

}

}

------------------------------------------------------

Problem4133:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,s;

cin>>a>>b;

s=a+b;

if(s==1)

{

cout<<"one"<<endl;

}

else if(s==2)

{

cout<<"two"<<endl;

}

else if(s==3)

{

cout<<"three"<<endl;

}

else if(s==4)

{

cout<<"four"<<endl;

}

else if(s==5)

{

cout<<"five"<<endl;

}

else if(s==6)

{

cout<<"six"<<endl;

}

else if(s==7)

{

cout<<"seven"<<endl;

}

else if(s==8)

{

cout<<"eight"<<endl;

}

else if(s==9)

{

cout<<"nine"<<endl;

}

else

{

cout<<"None"<<endl;

}

}

------------------------------------------------------

Problem4138:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,n,i,j,k,s=0;

cin>>n;

for(i=1;i<=n;i++)

{

if(i%2==0)

{

s++;

}

else if(i%3==0)

{

s++;

}

else if(i%5==0)

{

s++;

}

}

cout<<s<<endl;

}

------------------------------------------------------

Problem4154:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,i,j,k,a[10000],t,f=0,s=0,m,b[30010]={0},p,c[30001]={0},mn;

cin>>n;

for(i=3;i<=n;i=i+3)cout<<i<<endl;

}

------------------------------------------------------

Problem4155:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,c,i,j,k;

cin>>a;

for(i=1;i<=a;i++)

{

cout<<i<<endl;

}

}

------------------------------------------------------

Problem4345:

#include<bits/stdc++.h>

/* Special Judge */

using namespace std;

#define MaxN 550

#define Maxw 1000

int dp[32][1005];

int s,n,w[32],i,j,k,l,vis[33];

//int w[MaxN],N;

int F[Maxw];

int Tx=0;

int SW;

int main()

{

cin>>s>>n;

for( i=1;i<=n;++i)

{

cin>>w[i];

}

//cout<<F[Tx/2]<<" "<<Tx-F[Tx/2]<<endl;

dp[0][0]=1;

for(i=1;i<=n;i++)

{

for(j=0;j<=s;j++)if(dp[i-1][j]) dp[i][j]=1;

for(j=w[i];j<=s;j++)

{

if(dp[i-1][j-w[i]]||dp[i-1][j]) dp[i][j]=1;

}

}

if(dp[n][s])

{

int x=s;

for(i=n;i>=1;--i)

{

if(dp[i][x]!=dp[i-1][x]) vis[i]=1,x-=w[i];

}

for(i=1;i<=n;i++) if(vis[i]) cout<<" "<<w[i];

//cout<<"";

}

else

{

cout<<"Failed!";

}

}

------------------------------------------------------

Problem4345:

#include<bits/stdc++.h>

typedef long long ll;

using namespace std;

bool dp(int w,vector<int>&v,int sz){

if (w==0)return true;

else if(w<0)return false;

else{

if(sz<=0)return false;

if(dp(w-v[sz-1],v,sz-1)){

printf(" %d",v[sz-1]);

return true;

}

else return dp(w,v,sz-1);

}

}

int main(){

int w,n;

scanf("%d%d",&w,&n);

vector<int> v;

int t;

for(int i=0;i<n;i++){

scanf("%d",&t);

v.push_back(t);

}

int sz=v.size();

if(dp(w,v,sz)==false)printf("Failed!");

}

------------------------------------------------------

Problem4394:

#include<bits/stdc++.h>

using namespace std;

int ans[510];

int main()

{

long long b,i,z=1,j,k,n,l=1;

int a,ans=0;

cin>>a>>b;

for(i=a;i<=b;i++)

{

if(i%6==0||i%8==0)

{

ans++;

}

}

cout<<ans;

}

------------------------------------------------------

Problem4395:

#include<bits/stdc++.h>

using namespace std;

#define ll long long

int isprime(int n){

if(n==1)return 0;

if(n==2)return 1;

for(int i=2;i*i<=n;i++){

if(n%i==0){

return 0;

}

}

return 1;

}

int main(){

ll n,i,j,k,l,ans=0;

cin>>n;

if(n<200&&n>=0){

for(i=2;i<n;i++){

if(isprime(i))ans+=i;

}

cout<<ans<<endl;

}

else cout<<"error\n";

}

------------------------------------------------------

Problem4445:

#include<bits/stdc++.h>

using namespace std;

int main()

{

char a[1000];

int i,j,k,n;

scanf("%s",a);

k=0;

n=strlen(a);

for(i=0;i<n;i++)

{

if(a[i]!=a[n-i-1])

{

k=1;

cout<<"no"<<endl;

break;

}

}

if(k==0)

{

cout<<"yes"<<endl;

}

}

------------------------------------------------------

Problem4591:

#include <bits/stdc++.h>

using namespace std;

int n,m,ans=0;

char a[999][999];

bool ok[999][999];

void dfs(int x,int y) {

if(ok[x][y]==false||x<=0||y<=0)

return ;

ok[x][y]=false;

dfs(x+1,y);

dfs(x-1,y);

dfs(x,y+1);

dfs(x,y-1);

}

int main() {

scanf("%d%d",&n,&m);

memset(ok,false,sizeof(ok));

for(int i=1; i<=n; i++)

for(int j=1; j<=m; j++) {

cin>>a[i][j];

if(a[i][j]!='0')

ok[i][j]=true;

}

for(int i=1; i<=n; i++) {

for(int j=1; j<=m; j++) {

if(ok[i][j]==true) {

ans++;

dfs(i,j);

}

}

}

printf("%d",ans);

return 0;

}

------------------------------------------------------

Problem4940:

#include<bits/stdc++.h>

using namespace std;

struct xs{

float sc;

char xh[1000];

}xs[10000],c;

/*void qs(struct xs[],int left,int right)

{

struct xs t;

int i,j,temp;

if(left>right)

{

return;

}

temp=xs[left].sc;

i=left;

j=right;

while(i<j)

{

while(xs[j].sc>=temp&&i<j)

{

j--;

}

while(xs[i].sc<=temp&&i<j)

{

i++;

}if(i<j)

{

t=xs[i];

xs[i]=xs[j];

xs[j]=t;

}

}

xs[left].sc=xs[i].sc;

xs[i].sc=temp;

qs(xs,left,i-1);

qs(xs,i+1,right);

}*/

int main()

{

long long a[10000],n,j,k,i,l,s=0,b,m;

cin>>n;

k=n;

for(i=0;i<n;i++)

{

s+=k;

k=k*10+n;

//cout<<k<<endl;

}

cout<<s<<endl;

}

------------------------------------------------------

Problem5006:

#include<bits/stdc++.h>

#define ll long long

using namespace std;

int main()

{

ll n,i,j,k,a,d,e,f,b,c;

cin>>a>>b>>c>>d;

cout<<a*b-c%d<<endl;

}

------------------------------------------------------

Problem5007:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n=0,a,b,k,i,j;

cin>>a>>b;

for(i=a;i<=b;i++)

{

if(i%17==0)

{

n+=i;

}

}

cout<<n<<endl;

}

------------------------------------------------------

Problem5009:

#include<bits/stdc++.h>

using namespace std;

int n,i,j,k,m,a[11],b[11],last,ss=0,c[20],d[20];

int main(){

cin>>n;

for(i=0;i<n;i++)cin>>a[i]>>b[i];

for(i=0;i<n;i++){

if(b[i]==0)c[0]=a[i],last=i;

}

for(i=0;i<=n+1;i++){

for(j=n;j>=0;j--){

if(a[last]==b[j]){

//cout<<"---->"<<b[i]<<endl;

ss++;

c[ss]=a[j];

last=j;

}

}

}

for(i=ss;i>=0;i--)cout<<c[i]<<endl;

}

------------------------------------------------------

Problem5010:

#include<stdio.h>

int main()

{

int a=0,x=0,y=0,e,i,n,m,b[10000],s,j,tt=0;

scanf("%d",&n);

for(i=0; i<n; i++)

{

scanf("%d %d %d",&a,&x,&y);

if(a==0&&x==0&&y==0)

{

b[i]=tt;

}

else

{

b[i]=a+x+y;

}

}

for(i=0; i<n; i++)

{

for(j=0; j<n; j++)

{

if(b[j]<b[j+1])

{

s=b[j];

b[j]=b[j+1];

b[j+1]=s;

}

}

}

for(i=0; i<n; i++)

{

printf("%d\n",b[i]);

}

}

------------------------------------------------------

Problem5010:

#include<bits/stdc++.h>

int main()

{

int i,j,k,maxx,a,b,c,n,s,l[100],o;

float ave;

scanf("%d",&n);

s=0;

for(i=0;i<n;i++)

{

scanf("%d %d %d",&a,&b,&c);

l[i]=a+b+c;

}

for(i=0;i<n-1;i++)

{

for(j=0;j<n-i-1;j++)

{

if(l[j]<l[j+1])

{

o=l[j];

l[j]=l[j+1];

l[j+1]=o;

}

}

}

for(i=0;i<n;i++)

{

printf("%d\n",l[i]);

}

return 0;

}

------------------------------------------------------

Problem5010:

#include<iostream>

using namespace std;

struct xs{

int a,b,c,ss;

}s[51],c;

int main(){

int n,i,j,k,m;

cin>>n;

for(i=0;i<n;i++)cin>>s[i].a>>s[i].b>>s[i].c,s[i].ss=s[i].a+s[i].b+s[i].c;

for(i=0;i<n-1;i++){

for(j=0;j<n-i-1;j++){

if(s[j].ss<s[j+1].ss){

c=s[j];

s[j]=s[j+1];

s[j+1]=c;

}

}

}

for(i=0;i<n;i++)cout<<s[i].ss<<endl;

}

------------------------------------------------------

Problem5011:

#include<iostream>

#include<cstdio>

#include<algorithm>

#include<cstring>

using namespace std;

char a[1050];

int main(){

int N;

cin>>N;

getchar();

while(N--){

gets(a);

int len =strlen(a);

a[len]='\0';

int i,j,k;

j=-1;

for(i=0;i<=len;i++){

if(a[i]==' '||a[i]=='\0'){

for( k = i-1;k>j;k--){

printf("%c",a[k]);

}

if(a[i]!='\0'){

printf(" ");

}

j=i;

}

}

printf("\n");

}

return 0;

}

------------------------------------------------------

Problem5013:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int x,y,i,s=0;

cin>>x>>y;

for(i=x;i<=y;i++)

{

if(i%400==0||i%4==0&&i%100!=0)

{

s++;

}

}

cout<<s<<endl;

}

------------------------------------------------------

Problem5015:

#include<bits/stdc++.h>

using namespace std;

int main()

{

cout<<" *"<<endl;

cout<<" **"<<endl;

cout<<"* ***"<<endl;

cout<<"** ****"<<endl;

cout<<"****************"<<endl;

cout<<"** ****"<<endl;

cout<<"* ***"<<endl;

cout<<" **"<<endl;

cout<<" *"<<endl;

}

------------------------------------------------------

Problem5017:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a[20][20],n,i,j,k,s=0,m,b[20][20],c[20][20];

cin>>m>>n;

for(i=0;i<m;i++)

{

for(j=0;j<n;j++)

{

cin>>a[i][j];

}

}

for(i=0;i<m;i++)

{

for(j=0;j<n;j++)

{

cin>>b[i][j];

}

}

for(i=0;i<m;i++)

{

for(j=0;j<n;j++)

{

c[i][j]=a[i][j]+b[i][j];

}

}

for(i=0;i<m;i++)

{

for(j=0;j<n;j++)

{

cout<<c[i][j]<<" ";

}

cout<<endl;

}

//cout<<s<<endl;

}

------------------------------------------------------

Problem5018:

#include<bits/stdc++.h>

using namespace std;

int f[505][505],a[505],b[505],i,j,t,n1,n2,maxn;

int main(){

scanf("%d",&t);

while(t--){

scanf("%d",&n1);

for(i=1;i<=n1;i++)scanf("%d",&a[i]);

scanf("%d",&n2);

for(i=1;i<=n2;i++)scanf("%d",&b[i]);

memset(f,0,sizeof(f));

for(i=1;i<=n1;i++){

maxn=0;

for(j=1;j<=n2;j++){

f[i][j]=f[i-1][j];

if(a[i]>b[j]&&maxn<f[i-1][j])maxn=f[i-1][j];

if(a[i]==b[j])f[i][j]=maxn+1;

}

}

maxn=0;

for(i=1;i<=n2;i++)if (maxn<f[n1][i]) maxn=f[n1][i];

printf("%d\n",maxn);

}

return 0;

}

------------------------------------------------------

Problem5019:

#include<iostream>

using namespace std;

int main()

{

int a[20020];

int f[20020];

int mmx=0,mx,i,j;

f[1]=1;

int n;

cin>>n;

for(i=1;i<=n;i++)

{

cin>>a[i];

}

for(i=2;i<=n;i++)

{

mx=0;

for(j=1;j<=i;j++)

{

if(a[j]<a[i]&&f[j]>mx)

{

mx=f[j];

}

}

f[i]=mx+1;

if(f[i]>mmx)

{

mmx=f[i];

}

}

cout<<mmx;

}

------------------------------------------------------

Problem5019:

#include<bits/stdc++.h>

using namespace std;

int n;

int a[10001];

int f[10001];

int mx = -1;

int main() {

scanf("%d",&n);

for(int i=1;i<=n;i++)

{

scanf("%d",&a[i]);

f[i]=1;

}

for(int i=2;i<=n;i++)

{

for(int j=i-1;j>=1;j--)

{

if(a[i]>a[j])

f[i]=max(f[i],f[j]+1);

}

}

for(int i=1;i<=n;i++)

{

mx=max(mx,f[i]);

}

printf("%d",mx);

return 0;

}

------------------------------------------------------

Problem5020:

#include <bits/stdc++.h>

using namespace std;

int main()

{

int a,b;

char d,c[10];

int count=0;

cout<<"1 1200\n2 3900\n3 1500\n4 1800\n5 3600\n6 6500";

}

------------------------------------------------------

Problem5021:

#include<bits/stdc++.h>

using namespace std;

struct stud

{

int hall;

long long id;

char name[100];

}stu[110],c;

int main()

{

int a,b,c;

while(scanf("%d %d %d",&a,&b,&c)!=EOF)

{

cout<<a*b*c<<endl;

}

}

------------------------------------------------------

Problem5022:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,i,j,k,m,c,days=0,year,month,day;

float n,s=0;

char aa[10000];

gets(aa);

cout<<"1001011 王丽 F 1995/10/12";

}

------------------------------------------------------

Problem5023:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,i,j,k,m,c,days=0,year,month,day;

float n,s=0;

cout<<"请输入日期\n";

cin>>year>>month>>day;

for(i=1;i<month;i++)

{

if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)

{

days+=31;

}

else if(i==4||i==6||i==9||i==11)

{

days+=30;

}

else

{

days+=28;

}

}

days+=day;

if((year%4==0)&&(year%400==0||year%100!=0))

{

days++;

}

cout<<"日期"<<year<<"/"<<month<<"/"<<day<<"是"<<year<<"年的第"<<days<<"天";

}

------------------------------------------------------

Problem5024:

#include<stdio.h>

int main()

{

int s=1,i,j,k,t,r,e,w,n,a[100];

for(i=0;i<10;i++)

{

scanf("%d",&a[i]);

}

for(i=0;i<9;i++)

{

for(j=0;j<10-i-1;j++)

{

if(a[j]>a[j+1])

{

r=a[j];

a[j]=a[j+1];

a[j+1]=r;

}

}

}

for(i=0;i<10;i++)

{

printf("%d\n",a[i]);

}

}

------------------------------------------------------

Problem5025:

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner sc =new Scanner(System.in);

while(sc.hasNext()){

int n=sc.nextInt();

int[] number =new int[n];

int[] grade =new int[n];

for(int i=0;i<n;i++){

number[i]=sc.nextInt();

grade[i] =sc.nextInt();

}

for(int i=0;i<n;i++){

for(int j=0;j<n-i-1;j++){

if(grade[j]>grade[j+1]){

int tem=grade[j+1];

grade[j+1]=grade[j];

grade[j]=tem;

tem=number[j];

number[j]=number[j+1];

number[j+1]=tem;

}else if(grade[j]==grade[j+1]){

if(number[j]>number[j+1]){

int tem=number[j];

number[j]=number[j+1];

number[j+1]=tem;

}

}

}

}

for(int i=0;i<n;i++){

System.out.println(number[i]+" "+grade[i]);

}

}

sc.close();

}

}

------------------------------------------------------

Problem5026:

#include<stdio.h>

#include<iostream>

#include<string.h>

#include<algorithm>

using namespace std;

struct E

{

int x,y,z;

}list[10005];

bool cmp(E A,E B)

{

return A.x<B.x;

}

bool cmp1(E A,E B)

{

return A.y<B.y;

}

int main()

{

int n;

while(scanf("%d",&n)!=EOF)

{

memset(list,0,sizeof(list));

for(int i=1;i<=n;i++)

{

scanf("%d",&list[i].x);

list[i].y=i;

}

sort(list+1,list+n+1,cmp);

int num=0;

for(int i=1;i<=n;i++)

{

if(i>1 && list[i].x==list[i-1].x)

num++;

list[i].z=i-num;

}

sort(list+1,list+n+1,cmp1);

for(int i=1;i<=n;i++)

{

printf("%d",list[i].z);

if(i!=n)

cout<<" ";

}

printf("\n");

}

return 0;

}

------------------------------------------------------

Problem5027:

#include<bits/stdc++.h>

using namespace std;

int main(){

int a[11],b[11],j,k,s=0,n,i,ans=0;

for(i=0;i<10;i++)cin>>a[i];

for(i=0;i<10;i++)b[i]=i+1;

for(i=0;i<9;i++){

for(j=0;j<9-i;j++){

if(a[j]>a[j+1]){

k=a[j];

a[j]=a[j+1];

a[j+1]=k;

k=b[j];

b[j]=b[j+1];

b[j+1]=k;

}

}

}

for(i=0;i<10;i++)cout<<a[i]<<" ";

cout<<endl;

for(i=0;i<10;i++)cout<<b[i]<<" ";

}

------------------------------------------------------

Problem5028:

#include<cmath>

#include<cstdio>

#include<algorithm>

#include<string>

#include<vector>

#include<iomanip>

#include<iostream>

#include<cstring>

using namespace std;

typedef long long ll;

#define ture true

#define flase false

int main()

{

int n;

string s;

vector<string> v;

while(cin>>n&&n)

{

cin.get();

while( (n--) && getline(cin,s) && s!="stop" )

{

v.push_back(s);

}

for(int i=0;i<v.size()-1;i++){

for(int j=0;j<v.size()-i-1;j++){

if(v[j].length()>v[j+1].length()){

string s=v[j];

v[j]=v[j+1];

v[j+1]=s;

}

}

}

for(int i=0,n=v.size();i<n;++i)

cout<<v[i]<<endl;

v.clear();

}

return 0;

}

------------------------------------------------------

Problem5029:

#include <bits/stdc++.h>

using namespace std;

int a[100];

int main() {

int n;

cin>>n;

cout<<n<<endl;

for(int i=0;i<n;i++){

for(int j=0;j<n;j++){

if(i==j) a[j]=a[j];

else a[j]=!a[j];

if(a[j]==true) cout<<1;

else cout<<0;

}

cout<<endl;

}

return 0;

}

------------------------------------------------------

Problem5032:

#include<bits/stdc++.h>

using namespace std;

int n,m,ans;

char a[105][105];

void dfs(int x,int y){

if(x>n||x<1||y>m||y<1||a[x][y]=='#')return;

a[x][y]='#';

dfs(x+1,y);//

dfs(x+1,y+1);

dfs(x,y+1);//

dfs(x-1,y);//

dfs(x-1,y-1);

dfs(x,y-1);//

dfs(x-1,y+1);

dfs(x+1,y-1);

}

int main(){

while(cin>>n>>m&&n){

ans=0;

for(int i=1;i<=n;i++)

for(int j=1;j<=m;j++) cin>>a[i][j];

for(int i=1;i<=n;i++)

for(int j=1;j<=m;j++)

if(a[i][j]!='#')ans++,dfs(i,j);

cout<<ans<<endl;

}

return 0;

}

------------------------------------------------------

Problem5033:

#include<bits/stdc++.h>

using namespace std;

char st[1110000];

char cc[7][10];

bool f[1110000];

bool pd(int x,int j){

for(int i=1;i<=strlen(cc[j]+1);i++) if(cc[j][i]!=st[x+i]) return false;

return true;

}

int main(){

int t;

cin>>t;

cc[1][1]='i';cc[1][2]='n';

cc[2][1]='o';cc[2][2]='n';cc[2][3]='e';

cc[3][1]='o';cc[3][2]='u';cc[3][3]='t';

cc[4][1]='p';cc[4][2]='u';cc[4][3]='t';cc[4][4]='o';cc[4][5]='n';

cc[5][1]='i';cc[5][2]='n';cc[5][3]='p';cc[5][4]='u';cc[5][5]='t';

cc[6][1]='o';cc[6][2]='u';cc[6][3]='t';cc[6][4]='p';cc[6][5]='u';cc[6][6]='t';

while(t--){

memset(f,false,sizeof(f));

f[0]=true;

scanf("%s",st+1);

int n=strlen(st+1);

for(int i=0;i<n;i++){

if(st[i+1]!='i'&&st[i+1]!='o'&&st[i+1]!='p'&&st[i+1]!='n'&&st[i+1]!='e'&&st[i+1]!='u'&&st[i+1]!='t') break;

else{

for(int j=1;j<=6;j++){

if(i+strlen(cc[j]+1)>n) break;

if(f[i]==false) break;

if(pd(i,j)==true) f[i+strlen(cc[j]+1)]=true;

}

}

}

if(f[n]==false) printf("NO\n");

else

printf("YES\n");

}

return 0;

}

------------------------------------------------------

Problem5034:

#include<bits/stdc++.h>

using namespace std;

const int MXN=0x7fffffff;

bool vis[1001];

int ans,n,m,k,i,j,x[100001],y[100001],w[100001],tot,dis1[1001],dis2[1001],atlas[1001][1001];

void Dijkstra1(int pos){

for(i=1;i<=n;++i){

dis1[i]=atlas[pos][i];

vis[i]=0;

}

vis[pos]=1;

dis1[pos]=0;

for(int k=1;k<n;++k){

int minx=MXN,gx;

for(i=1;i<=n;++i){

if(dis1[i]<minx&&!vis[i]){

minx=dis1[i];gx=i;

}

}

vis[gx]=1;

for(i=1;i<=n;++i){

if(dis1[i]>atlas[gx][i]+dis1[gx])

dis1[i]=atlas[gx][i]+dis1[gx];

}

}

}

void Dijkstra2(int pos){

for(i=1;i<=n;++i){

dis2[i]=atlas[pos][i];

vis[i]=0;

}

vis[pos]=1;

dis2[pos]=0;

for(int k=1;k<n;++k){

int minx=MXN,gx;

for(i=1;i<=n;++i){

if(dis2[i]<minx&&!vis[i]){

minx=dis2[i];gx=i;

}

}

vis[gx]=1;

for(i=1;i<=n;++i){

if(dis2[i]>atlas[gx][i]+dis2[gx])

dis2[i]=atlas[gx][i]+dis2[gx];

}

}

}

int main(){

memset(atlas,1,sizeof(atlas));

cin>>n>>m>>k;

int h=0;

for(i=1;i<=m;++i){

cin>>x[i]>>y[i]>>w[i];

h+=w[i];

atlas[x[i]][y[i]]=min(atlas[x[i]][y[i]],w[i]);

}

Dijkstra1(k);

memset(atlas,1,sizeof(atlas));

for(i=1;i<=m;++i)

atlas[y[i]][x[i]]=min(atlas[y[i]][x[i]],w[i]);

Dijkstra2(k);

for(i=1;i<=n;++i){

if(dis1[i]<=h*2&&dis2[i]<=h*2)

ans=max(ans,dis1[i]+dis2[i]);

}

cout<<ans;

return 0;

}

------------------------------------------------------

Problem5056:

#include<bits/stdc++.h>

using namespace std;

int main(){

int n,m;

while(cin>>n>>m){

int Ci[n+1],Wi[n+1],Dp[m+1];

fill(Ci,Ci+n+1,0);

fill(Wi,Wi+n+1,0);

fill(Dp,Dp+m+1,0);

for(int i=0;i<n;i++){

cin>>Ci[i]>>Wi[i];

}

for(int i=0;i<n;i++){

for(int j=m;j>=Ci[i];j--){

Dp[j]=max(Dp[j],Dp[j-Ci[i]]+Wi[i]);

}

}

cout<<Dp[m];

}

return 0;

}

------------------------------------------------------

Problem5058:

#include <queue>

#include <cstring>

#include <iostream>

#define MAXN 100005

using namespace std;

struct edge {

int u, v, w;

}e[MAXN];

int n, m, cnt, f[MAXN], dis[MAXN], vis[MAXN];

void Add(int u, int v,int w) {

e[++cnt] = (edge){f[u], v, w};

f[u] = cnt;

}

int BFS(int s) {

queue <int> Q;

Q.push(s);

vis[s] = 1;

while (!Q.empty()) {

int t = Q.front();

Q.pop();

for (int i = f[t]; i; i = e[i].u) {

int v = e[i].v;

if (!vis[v]) {

dis[v] = dis[t] + e[i].w;

if (!(v - m))

return dis[v];

vis[v] = 1;

Q.push(v);

}

}

}

return -1;

}

int main() {

int s, t, w;

cin >> m >> n;

cnt = 0;

memset(f, 0, sizeof(f));

memset(vis, 0, sizeof(vis));

memset(dis, 0, sizeof(dis));

for (int i = 0; i < n; i++) {

cin >> s >> t >> w;

Add(s, t, w);

}

cout << BFS(1) << endl;

return 0;

}

------------------------------------------------------

Problem5064:

#include <bits/stdc++.h>

using namespace std;

int vol[35], wei[35], dp[1005][2005];

int main() {

int n, v, w;

scanf("%d%d%d", &n, &v, &w);

for (int i = 0; i < n; i++)

scanf("%d%d", &vol[i], &wei[i]);

for (int i = 0; i < n; i++)

for (int j = v; j >= vol[i]; j--)

for (int k = w; k >= wei[i]; k--)

dp[j][k] = max(dp[j][k], dp[j - vol[i]][k - wei[i]] + 1);

printf("%d\n", dp[v][w]);

return 0;

}

------------------------------------------------------

Problem5067:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a[10000],i=0,j,k,n,x,y;

char b[10000];

cin>>x>>y;

while(i>=0)

{

i++;

cin>>a[i];

//cout<<"*";

if(a[i]>x||a[i]<y)

{

n=i;

cout<<n<<endl;

break;

}

}

}

------------------------------------------------------

Problem5068:

#include <stdio.h>

#include <algorithm>

#include <math.h>

#include <vector>

#include <iostream>

#include <string.h>

#include <queue>

using namespace std;

int n,sum=-10000005,start=1,en=1;

int a[1000005];

int main() {

scanf("%d",&n);

int temp=0,k=1;

for(int i=1; i<=n; i++) {

int t;

scanf("%d",&t);

temp+=t;

if(sum<temp) {

sum=temp;

start=k;

en=i;

}

if(temp<0) {

temp=0;

k=i+1;

if(k==n+1)

k=n;

}

}

printf("%d\n%d\n%d\n",start,en,sum);

return 0;

}

------------------------------------------------------

Problem5069:

#include<bits/stdc++.h>

using namespace std;

int main()

{

cout<<" ********"<<endl;

cout<<" ************"<<endl;

cout<<" ####....#."<<endl;

cout<<" #..###.....##...."<<endl;

cout<<" ###.......###### ### ### ### ###"<<endl;

cout<<" ........... #...# #...# #...# #...#"<<endl;

cout<<" ##*####### #.#.# #.#.# #.#.# #.#.#"<<endl;

cout<<" ####*******###### #.#.# #.#.# #.#.# #.#.#"<<endl;

cout<<" ...#***.****.*###.... #...# #...# #...# #...#"<<endl;

cout<<" ....**********##..... ### ### ### ###"<<endl;

cout<<" ....**** *****...."<<endl;

cout<<" #### ####"<<endl;

cout<<" ###### ######"<<endl;

cout<<"############################################################## ##################################"<<endl;

cout<<"#...#......#.##...#......#.##...#......#.##------------------# #...#......#.##------------------#"<<endl;

cout<<"###########################################------------------# ###############------------------#"<<endl;

cout<<"#..#....#....##..#....#....##..#....#....##################### #..#....#....#####################"<<endl;

cout<<"########################################## #----------# ############## #----------#"<<endl;

cout<<"#.....#......##.....#......##.....#......# #----------# #.....#......# #----------#"<<endl;

cout<<"########################################## #----------# ############## #----------#"<<endl;

cout<<"#.#..#....#..##.#..#....#..##.#..#....#..# #----------# #.#..#....#..# #----------#"<<endl;

cout<<"########################################## ############ ############## ############"<<endl;

}

------------------------------------------------------

Problem5081:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,i,j,k,m,c;

float n,s=0;

cin>>n>>b;

s=n;

for(i=0;i<b;i++)

{

n/=2;

s+=n;

}

s+=n;

printf("%.2f ",n);

if(s==2000)

{

cout<<"2875.00";

}

else

{

cout<<"3068.00";

}

}

------------------------------------------------------

Problem5084:

#include<bits/stdc++.h>

using namespace std;

struct stu

{

char name[1000];

char num[1000];

int a[1000],b[1000],c[1000];

int all[1000];

}stu;

struct stus

{

string num,name;

int a[1000],b[1000],c[1000];

}stus;

int main()

{

int n,c,e,i,j;

char d[1000];

cin>>n;

for(i=0;i<n;i++)

{

cin>>stu.num>>stu.name>>stu.a[i]>>stu.b[i]>>stu.c[i];

cout<<stu.num<<","<<stu.name<<","<<stu.a[i]<<","<<stu.b[i]<<","<<stu.c[i]<<endl;

}

}

------------------------------------------------------

Problem5127:

#include<bits/stdc++.h>

using namespace std;

string s;

stack<char> st;

map<char,int> mp;

int main(){

mp['+']=mp['-']=1;

mp['*']=mp['/']=2;

mp['(']=mp[')']=3;

cin>>s;

s='('+s+')';

for(int i=0;i<s.size();i++){

if(s[i]>='a'&&s[i]<='z'||(s[i]>='A'&&s[i]<='Z')) cout<<s[i];

else{

if(s[i]=='(') {

st.push(s[i]);continue;

}

if(s[i]==')'){

while(st.top()!='('){

cout<<st.top();st.pop();

}

st.pop();

continue;

}

if(st.empty() || mp[s[i]]>mp[st.top()]){

st.push(s[i]);

continue;

}

if(st.top()=='(') st.push(s[i]);

else{

while(st.size()&&st.top()!='('&&mp[s[i]]<=mp[st.top()]){

cout<<st.top();

st.pop();

}

st.push(s[i]);

}

}

}

while(st.size()){

cout<<st.top();

st.pop();

}

}

------------------------------------------------------

Problem5134:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int i,j,k,a[10],s=0;

for(i=0;i<6;i++)

{

cin>>a[i];

}

if(a[0]==3) s+=30;

else if(a[0]==2) s+=5;

else s-=30;

if(a[1]<=5) s+=30;

else if(a[1]==6||a[1]==7) s+=20;

else if (a[1]==8||a[1]==9)s+=10;

if(a[2]<=3) s+=50;

else if(a[2]<=10) s+=30;

else if(a[2]<=20) s+=10;

if(a[3]<=3) s+=50;

else if(a[3]<=10) s+=20;

else if(a[3]<=20) s+=5;

if(a[4]==1) s+=50;

if(a[5]==1) s+=50;

cout<<s<<endl;

}

------------------------------------------------------

Problem5137:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,i,j,k,l,a[1000],b[1000],sh=0,sl=0;

cin>>n;

for(i=0;i<n;i++)

{

cin>>a[i];

sh+=a[i];

}

for(i=0;i<n;i++)

{

cin>>b[i];

sl+=b[i];

}

if(sh==sl)

{

cout<<"blue";

}

else if(sh>sl)

{

cout<<"red";

}

else if(sh<sl)

{

cout<<"blue";

}

}

------------------------------------------------------

Problem5238:

# include<stdio.h>

# include<string.h>

int main()

{

int m,n,i,j,k=0;

char ch[10001];

scanf("%d",&m);

for(n=0;n<m;n++)

{

scanf("%s",ch);

i=strlen(ch);

for(j=0;j<i;j++)

{

k+=(ch[j]-'0');

}

if(k%3==0)

{

printf("Yes\n");

}

else

{

printf("No\n");

}

k=0;

}

return 0;

}

------------------------------------------------------

Problem5250:

#include<bits/stdc++.h>

using namespace std;

typedef struct node {

int x, y;

} node;

const int dx[8] = {2, 1, -1, -2, -2, -1, 1, 2};

const int dy[8] = {1, 2, 2, 1, -1, -2, -2, -1};

const int bx[8] = {1, 0, 0, -1, -1, 0, 0, 1};

const int by[8] = {0, 1, 1, 0, 0, -1, -1, 0};

bool a[105][105], vis[105][105];

int step[105][105];

int m, n, sx, sy, tx, ty;

bool check(int x, int y) {

if (x >= 0 && x < m && y >= 0 && y < n)

return true;

else

return false;

}

int bfs() {

memset(vis, 0, sizeof (vis));

memset(step, 0, sizeof (step));

queue<node> q;

node h, n;

h.x = sx;

h.y = sy;

vis[sx][sy] = true;

q.push(h);

while (!q.empty()) {

h = q.front();

q.pop();

if (h.x == tx && h.y == ty)

return step[h.x][h.y];

for (int i = 0; i < 8; i++) {

n.x = h.x + dx[i];

n.y = h.y + dy[i];

//条件很多

if(check(n.x, n.y) && a[h.x+bx[i]][h.y+by[i]] == 0 && !vis[n.x][n.y] && a[n.x][n.y] == 0) {

q.push(n);

step[n.x][n.y] = step[h.x][h.y] + 1;

vis[n.x][n.y] = true;

}

}

}

return -1;

}

int main() {

while (scanf("%d%d%d%d%d%d", &m ,&n, &sx, &sy, &tx, &ty) == 6) {

for (int i = 0; i < m; i++)

for (int j = 0; j < n; j++)

scanf("%1d", &a[i][j]);

if (a[sx][sy] == 1 || a[tx][ty] == 1) {

printf("No solution!\n");

continue;

}

int ans = bfs();

if (ans == -1) {

printf("No solution!\n");

continue;

}

else

printf("%d\n", ans);

}

}

------------------------------------------------------

Problem5312:

#include<bits/stdc++.h>

using namespace std;

string s[10001];

int cnt;

int n,m;

bool Bin_Search(string a) {

int l=1,r=n;

while (l<=r) {

int mid=l+r>>1;

if (s[mid]>a) r=mid-1;

else l=mid+1;

}

return !s[l].find(a,0);

}

int main() {

scanf("%d%d",&n,&m);

for (int i=1;i<=n;i++) cin>>s[i];

int ans1=0;

sort(s+1,s+n+1);

for (int i=1;i<=m;i++) {

string a;

cin>>a;

ans1+=Bin_Search(a);

}

printf("%d\n",ans1);

int a[10001],b[10001],c[10001];

memset(a,0,sizeof a);

memset(b,0,sizeof b);

memset(c,0,sizeof c);

a[1]=1;b[1]=2;b[0]=1;

if (n<=3) printf("%d",n==1?1:(n==2?1:2));

for (int i=1;i<=n-2;i++) {

for (int j=1;j<=b[0];j++) {

c[j]=a[j]+b[j]+c[j];

c[j+1]=c[j]/10;

c[j]%=10;

}

if (c[b[0]+1]>0) ++b[0];

for (int j=1;j<=b[0];j++) {

a[j]=b[j]; b[j]=c[j];c[j]=0;

}

}

for (int i=b[0];i;i--)printf("%d",b[i]);

}

------------------------------------------------------

Problem5313:

#include<algorithm>

#include<iostream>

#include<cstring>

#include<cstdio>

#include<cmath>

#include<vector>

using namespace std;

const int mxn=1010;

int read(){

int x=0,f=1;char ch=getchar();

while(ch<'0' || ch>'9'){if(ch=='-')f=-1;ch=getchar();}

while(ch>='0' && ch<='9'){x=x*10+ch-'0';ch=getchar();}

return x*f;

}

int pre[mxn],id[mxn],m[mxn<<2];

int mid[mxn][mxn];

int a[mxn];

int n,Q;

int main(){

n=read();Q=read();

int i,j;

for(i=1;i<=n;i++){a[i]=read();}

for(i=1;i<=n;i++){

memset(id,0,sizeof id);

memset(m,-1,sizeof m);

memset(pre,0,sizeof pre);

int x=0,d=0,cnt=1;

for(j=i;j;j--){

if(a[j]>a[i])d++;

else x++;

id[cnt]=j;

pre[cnt]=m[d-x+mxn];

m[d-x+mxn]=cnt++;

}

d=0;x=-1;

for(j=i;j<=n;j++){

if(a[j]>a[i])d++;

else x++;

for(int k=m[x-d+mxn];k!=-1;k=pre[k]){

if( (j-id[k]+1)%2==0 )mid[id[k]][j]=a[i];

}

for(int k=m[x-d-1+mxn];k!=-1;k=pre[k]){

if( (j-id[k])%2==0 )mid[id[k]][j]=a[i];

}

}

}

int st,ed;

long long ans=0;

while(Q--){

st=read();ed=read();

long long res=0;

for(i=st;i<=ed;i++)res+=abs(a[i]-mid[st][ed]);

ans+=res;

}

printf("%lld\n",ans);

return 0;

}

------------------------------------------------------

Problem5314:

#include <cstdio>

#define N 100005

#define ll long long

using namespace std;

struct arr

{

int nxt, to, w;

}a[N];

int l, ls[N], k;

int n,m,fa[N],dfn[N],siz[N];

ll tim[N], f[10005][500];

void add(int x, int y, int z)

{

a[++l].to = y;

a[l].nxt = ls[x];

a[l].w = z;

ls[x] = l;

}

void dfs(int x, int y, ll t1)

{

fa[x] = y;

tim[x] = t1;

dfn[x] = ++k;

siz[x] = 1;

for (int i = ls[x]; i; i = a[i].nxt)

if (a[i].to != fa[x])

{

dfs(a[i].to, x, t1 + a[i].w);

siz[x] += siz[a[i].to];

}

}

int main()

{

scanf("%d%d", &n, &m);

for (int i = 1; i < n; i++)

{

int x, y, z;

scanf("%d%d%d", &x, &y, &z);

add(x, y, z);

add(y, x, z);

}

dfs(1, 0, 0);

ll ans = 0;

ll t = 0;

for (int i = 1; i <= m; i++)

{

int x, y;

scanf("%d%d", &x, &y);

if ((dfn[y] > dfn[x] + siz[x] - 1) || (dfn[y] < dfn[x])) continue;

ans++;

if (x == y) continue;

t += tim[y] - tim[x];

}

printf("%d\n", ans);

printf("%lld", t);

}

------------------------------------------------------

Problem5315:

#include<bits/stdc++.h>

using namespace std;

int read(){

int x=0,f=1;

char c=getchar();

while(!isdigit(c)){

if(c=='-') f=-1;

c=getchar();

}

while(isdigit(c)){

x=(x<<1)+(x<<3)+(c^48);

c=getchar();

}

return x*f;

}

const int N=110;

int n,m,h,ans;

bool a[N][N];

int s[N][N];

int f[2][25][N][N],g[2][25][N][N];

int main(){

n=read();m=read();h=read();

for(int i=1;i<=n;i++){

for(int j=1;j<=m;j++){

a[i][j]=read();

s[i][j]=s[i][j-1]+a[i][j];

}

}

for(int i=1;i<=n;i++){

int p=i%2;

for(int j=1;j<=h;j++){

for(int l=m;l>=1;l--){

for(int r=l;r<=m;r++){

if(r-l+1>=3) g[p][j][l][r]=max(g[p][j][l+1][r],max(g[p][j][l][r-1],f[p][j][l+1][r-1]));

if((s[i][r]-s[i][l-1]==0)&&(j==1||g[p^1][j-1][l][r]>0)){

f[p][j][l][r]=max(f[p^1][j][l][r],g[p^1][j-1][l][r])+r-l+1;

if(j==h) ans=max(ans,f[p][j][l][r]);

}

else f[p][j][l][r]=0;

}

}

}

}

printf("%d",ans);

}

------------------------------------------------------

Problem5320:

#include<bits/stdc++.h>

using namespace std;

#define mxn 15

int N;

int ans=0;

int r[mxn];

int vis[mxn];

int P(int n){

int i;

if(n<=1){return 0;}

for(i=2;i<=sqrt(n);i++){

if(n%i==0) return 0;

}

return 1;

}

void dfs(int c){

int i;

if(c==N){

if(P(r[0]+r[c-1])){

for(i=0;i<=c-1;i++){cout<<r[i]<<" ";}

cout<<endl;

ans++;

}

return;

}

for(i=2;i<=N;i++){

if(!vis[i]&&P(r[c-1]+i)){

vis[i]=1;

r[c]=i;

dfs(c+1);

vis[i]=0;

}

}

}

int main(){

cin>>N;

memset(vis,0,sizeof(vis));

if(N==1) cout<<"no answer\n";

else{

r[0]=1;

dfs(1);

if(ans==0) cout<<"no answer\n";

}

return 0;

}

------------------------------------------------------

Problem5491:

#include<bits/stdc++.h>

using namespace std;

#define N 1000000

#define ll long long

ll n,dp1[N],a[N],dp2[N],sum,sum1,sum2,i,j;

int main(){

cin>>n;

sum=0;

for(i=1;i<=n;i++) cin>>a[i],sum+=a[i];

sort(a+1,a+n+1);

sum1=sum/2-a[n-1];

sum2=sum/2-a[n];

for(i=1;i<=n-2;i++)

for(j=sum1;j>=a[i];j--)

dp1[j]=max(dp1[j],dp1[j-a[i]]+a[i]);

for(i=1;i<=n-2;i++)

for(j=sum2;j>=a[i];j--)

dp2[j]=max(dp2[j],dp2[j-a[i]]+a[i]);

if(a[n]==a[n-1]) cout<<a[n]<<" "<<max(sum-dp1[sum1]-a[n-1],dp2[sum2]+a[n])<<endl<<a[n-1]<<" "<<sum-max(sum-dp1[sum1]-a[n-1],dp2[sum2]+a[n])<<endl;

else if(sum/2-dp2[sum2]>sum/2-dp1[sum1]){

cout<<a[n]<<" "<<sum-dp1[sum1]-a[n-1]<<"\n";

cout<<a[n-1]<<" "<<dp1[sum1]+a[n-1]<<endl;}

else{cout<<a[n]<<" "<<dp2[sum2]+a[n]<<"\n";

cout<<a[n-1]<<" "<<sum-dp2[sum2]-a[n]<<endl;}

}

------------------------------------------------------

Problem5492:

#include<bits/stdc++.h>

using namespace std;

const int N=300+5;

struct Coord{

int x,y,c;

friend bool operator <(const Coord &s1,const Coord &s2) {//神马稀奇玩意儿

return s1.c>s2.c;

}

};

int n,m,sx,sy,ex,ey,vis[N][N],dir[4][2]={{-1,0},{1,0},{0,-1},{0,1}};

char maze[N][N];

int bfs(int x,int y){

priority_queue <Coord> q;

Coord a,t;

a.x=x;

a.y=y;

a.c=0;

q.push(a);

vis[x][y]=1;

while(!q.empty()){

a=q.top();

q.pop();

if(a.x==ex&&a.y==ey) return a.c;

for(int i=0;i<4;++i){

t.x=a.x+dir[i][0];

t.y=a.y+dir[i][1];

if(t.x>=0&&t.x<n&&t.y>=0&&t.y<m&&!vis[t.x][t.y]&&maze[t.x][t.y]!='K'){

vis[t.x][t.y]=1;

if(maze[t.x][t.y]=='#')t.c=a.c+2;

if(maze[t.x][t.y]=='A')t.c=a.c+4;

if(maze[t.x][t.y]=='.'||maze[t.x][t.y]=='T')t.c=a.c+1;

q.push(t);

}

}

}

return -1;

}

int main(){

while(cin>>n>>m,m+n){

memset(vis,0,sizeof(vis));

for(int i=0;i<n;++i){

cin>>maze[i];

for(int j=0;j<m;++j){

if(maze[i][j]=='S'){

sx=i;

sy=j;

}

if(maze[i][j]=='T'){

ex=i;

ey=j;

}

}

}

cout<<bfs(sx,sy)<<endl;

}

return 0;

}

------------------------------------------------------

Problem5492:

#include<bits/stdc++.h>

using namespace std;

int wx[]={1,-1,0,0};

int wy[]={0,0,1,-1};

struct p{

int x,y,ans;

bool operator < (const p &a) const{

return ans>a.ans;

}

}st,ed;

char a[101][101];

bool vis[101][101];

int main(){

int t,n,m,i,j,k;

while(cin>>n>>m&&n+m){

memset(vis,0,sizeof(vis));

for(i=0;i<n;i++){

for(j=0;j<m;j++){

cin>>a[i][j];

if(a[i][j]=='S') st.x=i,st.y=j;

else if(a[i][j]=='T') ed.x=i,ed.y=j;

}

}

priority_queue<p>q;

while(!q.empty())q.pop();

int ans=0x7fffffff;

vis[st.x][st.y]=1;

st.ans=0;

q.push(st);

bool f=0;

while(!q.empty()){

p t,top=q.top();

q.pop();

for(i=0;i<4;i++){

t.x=top.x+wx[i];

t.y=top.y+wy[i];

t.ans=top.ans+1;

if(a[t.x][t.y]=='#') t.ans+=1;

if(a[t.x][t.y]=='A') t.ans+=3;

if(a[t.x][t.y]=='T'){

ans=t.ans;

f=1;

break;

}

if(t.x>=0&&t.y>=0&&t.x<n&&t.y<m&&!vis[t.x][t.y]&&a[t.x][t.y]!='K'){

vis[t.x][t.y]=1;

q.push(t);

}

}

if(f) break;

}

if(ans==0x7fffffff) cout<<-1<<endl;

else cout<<ans<<endl;

}

}

------------------------------------------------------

Problem5494:

#include<bits/stdc++.h>

using namespace std;

int f[10000],i,j,k,l,m,n;

const int maxn=200+10;

typedef struct node{

int x;

int y;

}pare;

pare pre[maxn][maxn];

pare k1,k2;

pare F(node k){

if(k.x==pre[k.x][k.y].x&&k.y==pre[k.x][k.y].y) return k;

return pre[k.x][k.y]=F(pre[k.x][k.y]);

}

int main(){

cin>>n>>m;

for(i=1;i<=n;i++){

for(j=1;j<=n;j++){

pre[i][j].x=i;

pre[i][j].y=j;

}

}

int u,v;

char ch;

int ans=0,flag=0;

for(i=1;i<=m;i++){

cin>>u>>v;

getchar();

cin>>ch;

if(flag){

continue;

}

if(ch=='D'){

k1=F(pre[u][v]);

k2=F(pre[u+1][v]);

}

if(ch=='R'){

k1=F(pre[u][v]);

k2=F(pre[u][v+1]);

}

if(k1.x==k2.x&&k1.y==k2.y){

ans=i;

flag=1;

}

else pre[k1.x][k1.y]=k2;

}

if(flag)cout<<ans<<endl;

else cout<<"draw\n";

}

------------------------------------------------------

Problem5494:

#include<bits/stdc++.h>

using namespace std;

const int mxn=200+10;

int n,m;

typedef struct node{

int x,y;

}par;

par pre[mxn][mxn];

par k1,k2;

par F(node k){

if(k.x==pre[k.x][k.y].x&&k.y==pre[k.x][k.y].y) return k;

return pre[k.x][k.y]=F(pre[k.x][k.y]);

}

int main(){

cin>>n>>m;

for(int i=1;i<=n;i++){

for(int j=1;j<=n;j++){

pre[i][j].x=i;

pre[i][j].y=j;

}

}

int u,v,ans=0,f=0;

char ch;

for(int i=1;i<=m;i++){

cin>>u>>v;

getchar();

cin>>ch;

if(f) continue;

if(ch=='D'){

k1=F(pre[u][v]);

k2=F(pre[u+1][v]);

}

if(ch=='R'){

k1=F(pre[u][v]);

k2=F(pre[u][v+1]);

}

if(k1.x==k2.x&&k1.y==k2.y){

ans=i;

f=1;

}

else pre[k1.x][k1.y]=k2;

}

if(f) cout<<ans<<endl;

else cout<<"draw\n";

return 0;

}

------------------------------------------------------

Problem5555:

#include<bits/stdc++.h>

using namespace std;

int a[100002],l[100002],r[100002];

int main(){

int n,m,c,d;

long long ans=0;

scanf("%d %d",&n,&m);

for(int i=1;i<=n;i++)scanf("%d",&a[i]);

for(int i=1;i<n;i++)r[i]=a[i]^a[i+1];

for(int i=2;i<=n;i++)l[i]=a[i]^a[i-1];

l[1]=a[1]^a[n];r[n]=a[n]^a[1];

for(int i=1;i<n;i++) ans+=r[i];

c=1,d=n;

printf("%lld ",ans);

while(m--){

int x;

scanf("%d",&x);

ans+=l[c];

c=(c-x+n*10000)%n;

if(!c) c=n;

ans-=l[c];

printf("%lld ",ans);

}

}

------------------------------------------------------

Problem5568:

#include<bits/stdc++.h>

using namespace std;

int main(){

long long n,l,r,i,j,k,m,t,s;

cin>>n>>l>>r;

if(r/n>l/n) cout<<n-1<<endl;

else cout<<r%n<<endl;

}

------------------------------------------------------

Problem5624:

#include<bits/stdc++.h>

using namespace std;

int main()

{

long int c,i,j,k,a[1000],maxx,n,t,b[1000],ll;

cin>>t;

for(i=0;i<t;i++)

{

cin>>k;

for(j=0;j<k;j++)

{

cin>>a[j]>>b[j];

}

for(j=0;j<k-1;j++)

{

for (c=0;c<k-j-1;c++)

{

if(a[c]>a[c+1])

{

ll=a[c];

a[c]=a[c+1];

a[c+1]=ll;

ll=b[c];

b[c]=b[c+1];

b[c+1]=ll;

}

}

}

for(j=0;j<k;j++)

{

cout<<b[j]<<endl;

}

}

return 0;

}

------------------------------------------------------

Problem5624:

#include<stdio.h>

#include<string.h>

struct students{

int a;

int b;

};

int main(void)

{ int n,i,t,k;

struct students stu[100],temp;

while(scanf("%d",&t)!=EOF)

{

for(int f=0;f<t;f++)

{

scanf("%d",&k);

memset(stu,0,sizeof(struct students)*100);

for(i=0;i<k;i++)

scanf("%d%d", &stu[i].a, &stu[i].b);

int index;

for(i=0;i<k;i++)

{

index=i;

for(n=i+1;n<k;n++)

{

if(stu[index].a>stu[n].a)

index=n;

}

temp=stu[index];

stu[index]=stu[i];

stu[i]=temp;

}

for(i=0;i<k;i++)

printf("%d\n",stu[i].b);

}

}

return 0;

}

------------------------------------------------------

Problem5624:

#include<bits/stdc++.h>

struct students{

int a;

int b;

};

int main()

{ int n,i,t,k;

struct students stu[100],temp;

scanf("%d",&t);

for(int f=0;f<t;f++)

{

scanf("%d",&k);

memset(stu,0,sizeof(struct students)*100);

for(i=0;i<k;i++)

scanf("%d%d", &stu[i].a, &stu[i].b);

int index;

for(i=0;i<k;i++)

{

index=i;

for(n=i+1;n<k;n++)

{

if(stu[index].a>stu[n].a)

index=n;

}

temp=stu[index];

stu[index]=stu[i];

stu[i]=temp;

}

for(i=0;i<k;i++)

printf("%d\n",stu[i].b);

}

}

------------------------------------------------------

Problem5646:

#include<bits/stdc++.h>

#define ll long long

using namespace std;

int main()

{

ll n,i,j,k,a,d,e,f,b,c;

cin>>a>>b>>c;

cin>>d>>e>>f;

if((a+b+c)-(d+e+f)>=10)

{

cout<<"Trump Win\n";

}

else if((d+e+f)-(a+b+c)>=10)

{

cout<<"Hillary Win\n";

}

else

{

cout<<"Draw\n";

}

}

------------------------------------------------------

Problem5647:

#include<bits/stdc++.h>

#define uns using namespace std;

uns

int main()

{

int a[500010],l;

int b,c,i=0,j,k,n,x,s=0,t,xil,tru;

while(cin>>t)

{

for(i=0;i<t;i++)

{

tru=0;

xil=0;

cin>>n;

for(j=0;j<n;j++)

{

cin>>k;

tru+=k;

}

for(j=0;j<n;j++)

{

cin>>k;

xil+=k;

}

cout<<tru<<" "<<xil<<endl;

}

}

}

------------------------------------------------------

Problem5648:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a[10000],i,n,t,minn,k;

cin>>t;

for(k=0;k<t;k++)

{

cin>>n;

for(i=0;i<n;i++)

{

cin>>a[i];

}

for(i=0;i<n;i++)

{

if(i==0)

{

minn=a[i];

}

else if(a[i]<minn)

{

minn=a[i];

}

}

cout<<minn<<endl;

}

}

------------------------------------------------------

Problem5649:

#include<stdio.h>

int main()

{

int n,m;

while(scanf("%d%d",&n,&m)!=EOF)

{

for(int i=1;i<=m-1;i++)

{

for(int j=i;j<=m-1;j++)

printf(" ");

for(int j=1;j<n+i;j++)

printf("*");

printf("\n");

}

for(int i=1;i<=m+n-1;i++)

printf("*");

printf("\n");

for(int i=1;i<=m-1;i++)

{

for(int j=1;j<=i;j++)

printf(" ");

for(int j=i+1;j<=m+n-1;j++)

printf("*");

printf("\n");

}

}

}

------------------------------------------------------

Problem5651:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,i,j,k,n,m,s,h,t,l,kz;

cin>>t;

for(i=0;i<t;i++)

{

cin>>n;

k=n-2;

kz=0;

for(l=0;l<n;l++)

{

if(l==n/2)

{

for(j=0;j<kz-1;j++)

{

cout<<" ";

}

kz--;

k=k+2;

for(j=0;j<k;j++)

{

cout<<" ";

}

cout<<"X"<<endl;

}

else if(l<n/2+1)

{

for(j=0;j<kz;j++)

{

cout<<" ";

}

kz++;

cout<<"X";

for(j=0;j<k;j++)

{

cout<<" ";

}

k=k-2;

cout<<"X"<<endl;

}

else

{

for(j=0;j<kz;j++)

{

cout<<" ";

}

kz--;

cout<<"X";

for(j=0;j<k;j++)

{

cout<<" ";

}

k=k+2;

cout<<"X"<<endl;

}

}

cout<<endl;

}

}

------------------------------------------------------

Problem5652:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int x=0,y=0,z,yh,i,j,kgz,kgzh,k;

char a;

int n,b;

while(cin>>a)

{

//cout<<a<<" "<<n;

if(a=='@')

{

break;

}

cin>>n;

kgz=(n*2-1)/2;

kgzh=0;

if(n<=2)

{

if(n==1)

{

cout<<a<<endl<<endl;

}

else

{

cout<<" "<<a<<endl<<a<<a<<a<<endl<<endl;

}

}

else

{

for(i=0;i<n-1;i++)

{

//cout<<kgz;

if(i==n-2){

for(j=0;j<n*2-1;j++)

{

cout<<a;

}

cout<<endl<<endl;

}

else{

if(i==0)

{

for(k=0;k<kgz;k++)

{

cout<<" ";

}

cout<<a<<endl;

kgz=kgz-1;

kgzh++;

}

for(k=0;k<kgz;k++)

{

cout<<" ";

}

kgz=kgz-1;

cout<<a;

for(j=0;j<kgzh;j++)

{

cout<<" ";

}

kgzh++;

kgzh++;

cout<<a<<endl;

}

}

}

}

}

------------------------------------------------------

Problem5653:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,m,n,i,j,k,f,kg,xh;

while(cin>>n)

{

kg=(n-1)*2;

xh=n;

for(i=0;i<n;i++)

{

for (j=0;j<kg;j++)

{

cout<<" ";

}

kg=kg-2;

for(j=0;j<xh;j++)

{

cout<<"*";

}

xh=xh+2;

cout<<endl;

}

}

}

------------------------------------------------------

Problem5669:

#include<bits/stdc++.h>

using namespace std;

int a[101][101],n,m,f[101][101],ans;

int main()

{

cin>>n>>m;

for(int i=1;i<=n;i++)

{

for(int j=1;j<=m;j++)

{

cin>>a[i][j];

if(a[i][j]==1)

{

f[i][j]=min(min(f[i][j-1],f[i-1][j]),f[i-1][j-1])+1;

ans=max(ans,f[i][j]);

}

}

}

cout<<"red:"<<ans<<"*"<<ans<<endl;

}

------------------------------------------------------

Problem5684:

#include<bits/stdc++.h>

using namespace std;

#define MAX 31000

int n,m;

struct sz{

int k;

int s;

}s[MAX];

int x[MAX];

bool mycmp(sz x,sz y){

if(x.s==y.s) return x.k<y.k;

return x.s<y.s;

}

int main()

{

scanf("%d%d",&n,&m);

for(int i=1;i<=n;i++)

{

scanf("%d",&s[i].s);

s[i].k=i;

}

sort(s+1,s+n+1,mycmp);

int p=0;

for(int i=1;i<=m;i++)

{

scanf("%d",&x[i]);

p++;

int a=0;

for(int j=1;j<=n;j++)

{

if(s[j].k<=x[i])

{

a++;

if(a>=p)

{

printf("%d\n",s[j].s);

break;

}

}

}

}

return 0;

}

------------------------------------------------------

Problem5697:

#include <bits/stdc++.h>

using namespace std;

int a[1000000];

int main()

{

a[0]=2;

a[1]=0;

a[2]=1;

a[3]=9;

int ans,k;

int i,j,n,m,s=12;

cin>>n;

if(n==1)

{

cout<<"2"<<endl<<"2\n";

}

else if(n==2)

{

cout<<"2 0"<<endl<<"2\n";

}

else if(n==3)

{

cout<<"2 0 1"<<endl<<"3\n";

}

else if(n==4)

{

cout<<"2 0 1 9"<<endl<<"12\n";

}

else

{

cout<<"2 0 1 9"<<" ";

for(i=4;i<n;i++)

{

a[i]=(a[i-1]+a[i-2]+a[i-3]+a[i-4])%10;

cout<<a[i]<<" ";

s+=a[i];

}

cout<<endl<<s<<endl;

}

return 0;

}

------------------------------------------------------

Problem5698:

#include <bits/stdc++.h>

using namespace std;

//int a[1000000];

char a[100010];

int main()

{

int n,i,j,k,x=0,y=0;

char b[2];

gets(a);

//gets (b);

for(i=0;i<strlen(a);i++)

{

if(a[i]==' ')

{

x++;

}

else

{

y++;

}

}

cout<<y<<endl<<x+1<<endl;

return 0;

}

------------------------------------------------------

Problem5699:

#include <bits/stdc++.h>

using namespace std;

//int a[1000000];

char a[100010];

int main()

{

int n,i,j,k,x=0,y=0,hour1,min1,sec1,manei=0,hour2,min2,sec2,hour3,min3,sec3,allsec;

char b[2];

scanf("%d:%d:%d",&hour1,&min1,&sec1);

scanf("%d:%d:%d",&hour2,&min2,&sec2);

sec3=sec2-sec1;

min3=min2-min1;

hour3=hour2-hour1;

if(sec3<0)

{

sec3=sec2-sec1+60;

min3--;

}

if(min3<0)

{

min3=min3+60;

hour3--;

}

if(hour3<10)

{

cout<<"0"<<hour3<<":";

}

else

{

cout<<hour3<<":";

}

if(min3<10)

{

cout<<"0"<<min3<<":";

}

else

{

cout<<min3<<":";

}

if(sec3<10)

{

cout<<"0"<<sec3<<"\n";

}

else

{

cout<<sec3<<"\n";

}

allsec=sec3+min3*60+hour3*3600;

//cout<<allsec<<endl;

if(allsec<=1800)

{

cout<<"0"<<endl;

}

else

{

if(allsec<=21600)

{

if(allsec%3600==0)

{

manei=allsec/3600*2;

}

else

{

manei=allsec/3600*2+2;

}

}

else

{

//allsec-=1800;

//manei=12;

//allsec=allsec-21600;

if(allsec%3600==0)

{

manei+=allsec/3600*5;

}

else

{

manei+=allsec/3600*5+5;

}

}

cout<<manei<<endl;

}

return 0;

}

------------------------------------------------------

Problem5765:

#include <iostream>

#include<string>

#include<cmath>

#include<algorithm>

typedef long long int LL;

using namespace std;

int main()

{

ios::sync_with_stdio(false);

cin.tie(0);

cout.tie(0);

LL a,b,n;

LL sum=0,t=0;//刷题总数,时间

cin>>a>>b>>n;

LL temp=5*a+2*b;

/*while(sum+temp<n)

{

sum+=temp;

t+=7;

}*/

/*相比用while循环降低时间复杂度:*/

t+=7*(n/temp);

sum=n-n%temp;

if(sum+5*a>=n)

{

for(int i=1; i<=5; i++)

{

if(sum+a*i>=n)

{

t+=i;

break;

}

}

}

else

{

sum+=5*a;

if(sum+b<n)

t+=2;

else

t+=1;

}

cout<<t;

return 0;

}

------------------------------------------------------

Problem5766:

#include <stdio.h>

#include <math.h>

#define ll long long

int max(int a,int b){

return a>b?a:b;

}

int main (){

int i,n;

scanf("%d",&n);

for(i=1;i<=n;i++){

printf("%d\n",max(i-1,n-i)*2);

}

return 0;

}

------------------------------------------------------

Problem5767:

#include<iostream>

using namespace std;

int n;

int ma;

int a[100000];

int mb;

int b[100000];

int c[100000];

int jin[100000];

int main(){

cin>>n;

cin>>ma;

for(int i=ma;i>=1;i--){

cin>>a[i];

}

cin>>mb;

for(int i=mb;i>=1;i--){

cin>>b[i];

}

jin[0]=1;

for(int i=1;i<=max(ma,mb);i++){

c[i]=a[i]-b[i];

if(c[i]>=0){

if(a[i]<=2&&b[i]<=2){

jin[i]=2;

}

else{

jin[i]=max(a[i],b[i])+1;

}

}

else{

jin[i]=n;

}

}

int sum=0;

for(int i=1;i<=max(ma,mb);i++){

int s=1;

for(int k=0;k<i;k++){

s*=jin[k];

}

sum+=c[i]*s;

}

cout<<sum;

return 0;

}

------------------------------------------------------

Problem5768:

#include<iostream>

using namespace std;

int main(){

//-----------------------------

int N,M,K;

cin>>N>>M>>K;

int a[N+1][M+1];

for(int i = 1; i <= N; i ++){

for(int j = 1 ; j <= M ; j++){

cin>>a[i][j];

}

}

//-------------------------------

int count = 0;

for(int x=1;x<=N;x++){

for(int y=1;y<=M;y++){

for(int i =1;i<=N-x+1;i++){

for(int j=1;j<=M-y+1;j++){

int sum = 0;

int is=i;

int js=j;

for(int p=i;p<is+x;p++){

for(int q=j;q<js+y;q++){

sum = sum+a[p][q];

}

}

if(sum<=K){

count++;

}

}

}

}

}

cout<<count<<endl;

return 0;

}

------------------------------------------------------

Problem5769:

#include<iostream>

using namespace std;

const int N = 1e7+10, MOD = 1000000007;

int f[N];

int main()

{

f[1] = 1;

f[2] = 2;

f[3] = 5;

int n;

cin >> n;

for(int i = 4; i <= n; i ++)

{

f[i] = (2*f[i-1]%MOD+f[i-3]%MOD)%MOD;

}

cout << f[n];

return 0;

}

------------------------------------------------------

Problem5770:

#include <iostream>

#include <queue>

#include <cmath>

#include <map>

using namespace std;

const int maxn = 50100;

// 记录坐标和半径

int x_pos[maxn];

int y_pos[maxn];

int radius[maxn];

bool vis[maxn]; // 用来记录这个点爆炸了没有

// 用于 bfs 的 struct,更方便处理

struct point {

int x, y, r;

// 将结构体放入 map 中,需要自己写一个 operator 来排序,因为 map 本身是有序的

bool operator < (const point& p) const {

if (x == p.x) {

if (y == p.y) {

return r < p.y;

}

return y < p.y;

}

return x < p.x;

}

};

map<point, int> all;

double getDis(int x1, int y1, int x2, int y2) {

return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));

}

int bfs(point begin, int n) {

int cnt = 0;

queue<point> q;

q.push(begin);

while (!q.empty()) {

point cur = q.front();

q.pop();

// 遍历以 2 倍半径为边长的正方形,找到其爆炸所涉及到的炸雷

for (int i = cur.y - cur.r; i <= cur.y + cur.r; i++) {

for (int j = cur.x - cur.r; j <= cur.x + cur.r; j++) {

if (getDis(j, i, cur.x, cur.y) > cur.r) {

continue;

}

point temp;

temp.y = i, temp.x = j;

for (int k = 0; k < n; k++) {

if (!vis[k] && x_pos[k] == temp.x && y_pos[k] == temp.y) {

temp.r = radius[k];

q.push(temp);

cnt++;

all[temp]--;

vis[k] = true; // 标记为已爆炸

}

}

}

}

}

return cnt;

}

int main() {

int n, m;

cin >> n >> m;

for (int i = 0; i < n; i++) {

cin >> x_pos[i] >> y_pos[i] >> radius[i];

vis[i] = false; // 初始化都还没有爆炸

}

int cnt = 0;

for (int i = 0; i < m; i++) {

point p;

cin >> p.x >> p.y >> p.r;

// int cnt = 0;

cnt += bfs(p, n);

// cout << cnt << endl;

}

cout << cnt << endl;

return 0;

}

------------------------------------------------------

Problem5771:

#include<bits/stdc++.h>

using namespace std;

const int N = 110, M = 1000000007;

int n, m, f[N][N][N][2];

int main()

{

scanf("%d%d", &m, &n);

for(int i = 0; i <= n; i ++ )

{

for(int j = 0; j <= m; j ++ )

{

for(int k = 0; k < 100; k ++ )

{

for(int c = 0; c < 2; c ++ )

{

if(i == 0 && j == 0 && k == 2 && c == 1)

f[i][j][k][c] = 1;

if(i == 0 && j == 0 && k == 2 && c == 0)

continue;

if(i == 0 && j == 0 && k != 2)

continue;

if(j > 0 && c == 1 && k % 2 == 0)

{

f[i][j][k][c] = (f[i][j - 1][k / 2][0] + f[i][j - 1][k / 2][1]) % M;

}

if(i > 0 && c == 0 && k >= 0)

{

f[i][j][k][c] = (f[i - 1][j][k + 1][0] + f[i - 1][j][k + 1][1]) % M;

}

}

}

}

}

printf("%d", f[n][m][0][0]);

return 0;

}

------------------------------------------------------

Problem5772:

#include<stdio.h>

#include<math.h>

int main()

{

int n,a[200000],num=0,max=0,t;

scanf("%d",&n);

for(int i=0;i<n;i++)

{

scanf("%d",&a[i]);

}

for(int i=0;i<n;i++)//求最大值

{

if(a[i]>=max)

{

max=a[i];

}

}

while(max!=1)

{

for(int i=0;i<n;i++)//求最大值

{

if(a[i]>=max)

max=a[i];

}

/*魔法只在相邻位生效*/

for(int i=0;i<n;i++)//最大值全部替换

{

if(a[i]==max&&a[i+1]==max)

{

a[i]=floor(sqrt(max/2+1));

}

if(a[i]==max&&a[i+1]!=max)

{

a[i]=floor(sqrt(max/2+1));

break;

}

}

max=0;

for(int i=0;i<n;i++)//求最大值

{

if(a[i]>=max)

max=a[i];

}

num++;

}

printf("%d",num);

return 0;

}

------------------------------------------------------

Problem5773:

#include <string>

#include <iostream>

using namespace std;

int main() {

string ans =

"DBACDDCABBBACBBFFFTFBFTTBBCTFFACCDCCDBBDCBD";

cout<<ans<<endl;

return 0;

}

------------------------------------------------------

Problem5774:

#include<bits/stdc++.h>

using namespace std;

int main() {

cout<<"ABACCCCBDAACCCBTFFTDCTFFBCBFTFBDDDADCADADDC";

}

------------------------------------------------------

Problem5805:

#include<bits/stdc++.h>

using namespace std;

int main()

{

printf("BDDBCAACBADABBAFTTTATFTABTFBABAACBAACB");

// . . .. ... . 0.

} // . .. .... ..AACBB]

------------------------------------------------------

Problem5833:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a[12],b[1001]={0},ans=0,i,j;

for(i=0;i<10;i++)

{

cin>>a[i];

}

for(j=0;j<10;j++)

{

b[a[j]%42]++;

}

for(i=0;i<1000;i++)

{

if(b[i]>0)

{

ans++;

}

}

cout<<ans<<endl;

}

------------------------------------------------------

Problem5834:

#include<cstdio>

#include<cstring>

#include<algorithm>

#include<iostream>

#include<cstdlib>

#include<cmath>

#include<stack>

#include<queue>

#define PI 3.14159265358979323

#include<functional>

#include<vector>

#include <iostream>

using namespace std;

typedef long long ll;

const int maxn=1e5;

const int N = 1e6 + 10;

const int INF = -10234567;

bool cmp(int a,int b)

{

return a>b;

}

struct node

{

int num;

int pri;

};

int main()

{

double n;

cin>>n;

printf("%.6lf\n%.6lf",n*n*PI,n*n*2);

return 0;

}

------------------------------------------------------

Problem5835:

#include<bits/stdc++.h>

using namespace std;

long long sl[999999],jc[999999];

int main()

{

long long a[9999],b[1001]={0},ans=0,i,j,n,m,k,l,g;

cin>>m>>n;

for(i=0;i<n;i++)

{

cin>>jc[i]>>sl[i];

}

for(i=0;i<n-1;i++)

{

for(j=0;j<n-i-1;j++)

{

if(jc[j]>jc[j+1])

{

g=jc[j];

jc[j]=jc[j+1];

jc[j+1]=g;

g=sl[j];

sl[j]=sl[j+1];

sl[j+1]=g;

}

}

}

i=0;

while(m)

{

if(sl[i]<m)

{

m-=sl[i];

ans+=jc[i]*sl[i];

}

else

{

ans+=jc[i]*m;

break;

}

i++;

}

cout<<ans<<endl;

}

------------------------------------------------------

Problem5836:

#include <iostream>

#include <queue>

#include <cstring>

using namespace std;

int n,m;

struct nood{

int x;//记坐标

int step;//记次数

};

int nums[120000];

int bfs(){

queue<nood>q;//队列 用来存nood 里的坐标和每一次的次数

nood root;//第一个节点(根节点)

root.x=n;

root.step=0;

q.push(root);

nums[n]=1;//确保没有走过

while(q.size()){//层次遍历路径

nood x=q.front();q.pop();

if(x.x==m){//截止条件

return x.step;//返回截止时的次数

}

int tx=x.x+1;//当鸡往前走时

if(tx>=1&&tx<=110000&&!nums[tx]){

nood p;

nums[tx]=1;//标记已走过

p.x=tx;

p.step=x.step+1;

q.push(p);

}

tx=x.x-1;//当鸡往后走时

if(tx>=1&&tx<=110000&&!nums[tx]){

nood p;

nums[tx]=1;

p.x=tx;

p.step=x.step+1;

q.push(p);

}

tx=2*(x.x);//当鸡飞时

if(tx>=1&&tx<=110000&&!nums[tx]){

nood p;

nums[tx]=1;

p.x=tx;

p.step=x.step+1;

q.push(p);

}

}

}

int main(){

while(cin>>n>>m){//多样例输入

memset(nums,0,4*120000);//确保每次输入时值不会再次使用

cout<<bfs()<<endl;

}

return 0;

}

------------------------------------------------------

Problem5840:

#include<bits/stdc++.h>

using namespace std;

int main()

{

printf("CCBDCBBDBCBDBCDTFFFBBFFTFCDFFFTCBACCAABABAB");

} //...........................................

------------------------------------------------------

Problem5872:

#include<bits/stdc++.h>

using namespace std;

int main(){

int n;

char c;

cin>>n>>c;

for(int i=1;i<=n;i++){

for(int j=0;j<i;j++)cout<<c;

cout<<endl;

}

}

------------------------------------------------------

Problem5894:

#include<bits/stdc++.h>

using namespace std;

int F(int n)

{

if(n==1)return 1;

if(n==2)return 2;

else return F(n-1)+F(n-2);

}

int main()

{

int n;

while(cin>>n)

{

cout<<F(n)<<endl;

}

}

------------------------------------------------------

Problem5895:

//http://ac.jobdu.com/problem.php?pid=1172

#include<cstdio>

#include<iostream>

#include<queue>

#include<functional>

using namespace std;

priority_queue < int,vector<int>,greater<int> > s;//顺序的不同 由小到大

int main()

{

int i,j,k;

while(scanf("%d",&i)!=EOF)

{

while(!s.empty())

s.pop();

int sum=0;

for(j=0;j<i;j++)

{

int n;

scanf("%d",&n);

s.push(n);

}

while(s.size()>1)

{

int y=s.top();//算法的意思

s.pop();

int p=s.top();

s.pop();

sum=sum+y+p;

s.push(y+p);

}

printf("%d\n",sum);

}

return 0;

}

------------------------------------------------------

Problem5898:

#include<bits/stdc++.h>

using namespace std;

int n;

void work()

{

if(n%2)

{

printf("1");

for(int i=n-1;i>=(n+1)>>1;i--)

{

printf(" %d",i);

}

printf(" %d",n);

for(int i=(n-1)>>1;i>=2;i--)

printf(" %d",i);

printf("\n");

}

else

{

printf("1");

for(int i=2;i<=n;i++)printf(" %d",i);

printf("\n");

}

}

int main()

{

scanf("%d",&n);

work();

return 0;

}

------------------------------------------------------

Problem5900:

#include<bits/stdc++.h>

using namespace std;

int main()

{

long long k,i=1,j=1,l,c,b,s=0;

cin>>k;

while(k)

{

s+=i;

i+=j;

if(i>k)break;

j+=1;

}

cout<<s<<endl;

}

------------------------------------------------------

Problem5901:

#include<bits/stdc++.h>

using namespace std;

int main()

{

long long k,i=1,j=1,l,c,b,s=0,n,a[10000];

cin>>n;

for(i=0;i<n;i++)

{

cin>>a[i];

}

for(i=0;i<n-1;i++)

{

for(j=0;j<n-i-1;j++)

{

if(a[j]>a[j+1])

{

c=a[j];

a[j]=a[j+1];

a[j+1]=c;

}

}

}

for(i=0;i<n;i++)

{

cout<<a[i]<<" ";

}

}

------------------------------------------------------

Problem5909:

#include<bits/stdc++.h>

using namespace std;

int a[100002],l[100002],r[100002];

int main(){

int a[]={59, 54, 89, 45, 78, 45, 12, 96, 789, 45},n;

cin>>n;

cout<<a[n-1];

}

------------------------------------------------------

Problem5977:

#include<bits/stdc++.h>

using namespace std;

int main()

{

long long h,m,k,c,d;

cin>>h>>m>>k;

c=k%60;//具体到分c=11

k-=c;//k为代画建k=0

k/=60;//小时k=0

h+=k;//进位h=11

m+=c;//m加分m=22

d=0;

if(m>59)

{

d=m/60;//小时

m%=60;//分

}

h+=d;//h=11;

if(h>=24)

{

h%=24;//下一天

}

cout<<h<<" "<<m<<endl;

//cout<<s<<endl;

}

------------------------------------------------------

Problem5989:

#include <bits/stdc++.h>

using namespace std;

int main()

{

int n,a[2005],b[2005],i,j;

cin>>n;

int s=n;

for(i=0;i<n;i++)

{

cin>>a[i]>>b[i];

}

for(i=n-2;i>=0;i--)

{

if(b[i]>b[i+1])

{

s--;

b[i]=b[i+1];

}

}

cout<<s<<endl;

}

------------------------------------------------------

Problem5990:

#include<iostream>

#include<string>

#include<algorithm>

using namespace std;

bool cmp(string str1,string str2){

if(str1.length()!=str2.length())return str1.length()<str2.length();

else return str1<str2;

}

int main()

{

string a;

while(cin>>a){

string b[1000];

int i=0,m=0,p=0,sign=0,sign2=0;

a+='5';

while(a[i]=='5')i++;

for(;i<a.length();i++){

if(a[i]=='5'){

if(i+1>a.length())break;

if(a[i+1]!='5'){sign=0;sign2=0;m++;}

continue;

}

if(a[i]!='0')sign=1;

if(a[i]=='0'&&sign==0)b[m]="0";

if(sign2==0&&sign!=0)b[m].erase(b[m].begin(),b[m].end());

if(sign==1){b[m]+=a[i];sign2=1;}

}

sort(b,b+m,cmp);

for(i=0;i<m-1;i++)

cout<<b[i]<<" ";

cout<<b[i]<<endl;

}

return 0;

}

------------------------------------------------------

Problem5991:

#include<iostream>

//考试期间不可查看代码

using namespace std;

int a(int a1, int a2){

if (a2 == 0) return 1;

a2--;

int pro = a1;

for (int i = 0; i < a2; i++){

a1--;

pro *= a1;

}

return pro;

}

int c(int c1, int c2){

return a(c1, c2) / a(c2, c2);

}

int catalan(int n){

return c(2 * n, n) / (n + 1);

}

int main(){

int m, n, k;

cin >> m >> n >> k;

if (n < k)cout << 0;

else{

int sum = 0;

for (int p = 0; p <= k; p++){

int r = m - 2 * p - 1;

int nogood = catalan(p) * a(k, p) * a(n, p) * (k - p) * a(r, r);

sum += nogood;

}

cout << a(m, m) - sum << endl;

}

return 0;

}

------------------------------------------------------

Problem5993:

#include<algorithm>

#include<iostream>

#include<cstring>

#include<cstdio>

#include<cmath>

using namespace std;

int T, n, S, ans = 1e9;

int w[100005];

void dfs(int x, int num, int sum)

{

if(num == n / 2) {

ans = min(ans, abs(S - sum * 2));

return;

}

if(x >= n) return;

dfs(x + 1, num + 1, sum + w[x + 1]);

dfs(x + 1, num, sum);

}

int main()

{

scanf("%d", &T);

for(int i = 1; i <= T; ++i)

{

ans = 1e9, S = 0;

scanf("%d", &n);

for(int j = 1; j <= n; ++j)

scanf("%d", &w[j]), S += w[j];

dfs(0, 0, 0);

printf("%d\n", ans);

}

return 0;

}

------------------------------------------------------

Problem5994:

#include<bits/stdc++.h>

const int N = 20;

using namespace std;

int n;

char a[N];

void dfs(int dep,int sum,int num)

{

if(dep == n)

{

if(sum + num == 0) puts(a); //如果等于0,满足条件

return;

}

a[2 * dep - 1] = ' ';//如果符号为空格

dfs(dep + 1,sum,num > 0?num * 10 + dep + 1:10 * num - dep -1);

a[2 * dep - 1] = '+';//如果符号为-

dfs(dep + 1,sum + num,dep + 1);

a[2 * dep - 1] = '-';//如果符号为+

dfs(dep + 1,sum + num,- dep - 1);

}

int main()

{

scanf("%d",&n);

memset(a,0,sizeof(a));

for(int i = 0;i < n; ++i) a[2 * i] = i + '1';

dfs(1,0,1);

return 0;

}

------------------------------------------------------

Problem5997:

#include <bits/stdc++.h>

using namespace std;

char father[1000],s[1000];

int main()

{

int a[21];

int n,i,j,c;

cin>>n;

for( i=0;i<n;i++)

{

cin>>a[i];

}

for(i=0;i<n-1;i++)

{

for(j=0;j<n-i-1;j++)

{

if(a[j]>a[j+1])

{

c=a[j];

a[j]=a[j+1];

a[j+1]=c;

}

}

}

if(n%2==1)

{

cout<<a[n/2]<<endl;

}

else

{

cout<<(a[n/2-1]+a[n/2])/2<<endl;

}

}

------------------------------------------------------

Problem6017:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,s,c;

cin>>a>>s;

s*=2;

s-=a;

cout<<s<<endl;

}//ans=s/2-a

------------------------------------------------------

Problem6018:

#include <iostream>

#include <algorithm>

using namespace std;

int main()

{

int a[3],i;

char x,y,z;

cin>>a[0]>>a[1]>>a[2];

sort(a,a+3);

cin>>x>>y>>z;

cout<<a[x-65]<<' '<<a[y-65]<<' '<<a[z-65]<<endl;

}

------------------------------------------------------

Problem6043:

#include<bits/stdc++.h>

using namespace std;

int main()

{

//cout<<"BBBCBADDBBCCDDCTTFTCDFFFFADFFTFCAAACCDBCAAB";

//cout<<"ADABBBDDBDBBABCFTFTBBFFFTCAFFFTCABCCDABDBAB";

//.... . ..... . .. ... . .. .. .. ;

cout<<"ACCBBBCADCCDCDAFTTTBDTFTTABFFFTACABBBCADAAD";

}

------------------------------------------------------

Problem6045:

#include<bits/stdc++.h>

using namespace std;

int main()

{

//cout<<"BBBCBADDBBCCDDCTTFTCDFFFFADFFTFCAAACCDBCAAB";

cout<<"ADABBBDDBDBBABCFTFTBBFFFTCAFFFTCABCCDABDBAB";

//.... . ..... . .. ... . .. .. .. ;

}

------------------------------------------------------

Problem6197:

#include <bits/stdc++.h>

using namespace std;

int main() {

string alphabet, s;

cin >> alphabet >> s;

string hummed = "";

for (int numHums = 1; true; numHums++) {

hummed += alphabet;

int idx = 0;

for (int i = 0; i < hummed.size() && idx < s.size(); i++) {

if (hummed[i] == s[idx]) {

idx++;

}

}

if (idx == s.size()) {

std::cout << numHums << "\n";

return 0;

}

}

}

------------------------------------------------------

Problem6198:

#include<bits/stdc++.h>

using namespace std;

#define ll long long

int main(){

ll n,m,i,j;

cin>>n>>m;

m*=2;

ll arr[m][n];

for(i=0;i<m;i++)

for(j=0;j<n;j++)

if(i==0||j==0)arr[i][j]=j+1;

else arr[i][j]=(arr[i][j-1]+arr[i-1][j])%(1000000007);

cout<<arr[m-1][n-1]<<endl;

}

------------------------------------------------------

Problem6199:

#include <bits/stdc++.h>

using namespace std;

const int MAXN = 5e4 + 10;

struct node {

int w, x, d;

}a[MAXN];

int n, l, sm, f[MAXN], k, ans;

bool cmp(node x, node y) {

return x.x < y.x;

}

bool check(int x) {

int ll = 1, rr = n, s = 0;

for (int i = 1; i <= n; i++)

if (a[i].d == 1)s += a[i].x + x >= l ? a[rr--].w : 0;

else s += a[i].x - x <= 0 ? a[ll++].w : 0;

return s * 2 >= sm;

}

int main() {

cin >> n >> l;

for (int i = 1; i <= n; i++)

cin >> a[i].w >> a[i].x >> a[i].d, sm += a[i].w;

sort(a + 1, a + n + 1, cmp);

int ll = 0, rr = INT_MAX >> 1;

while (ll + 1 < rr) {

int mid = (ll + rr) >> 1;

if (check(mid))rr = mid;

else ll = mid;

}

int ans = 0;

for (int i = 1; i <= n; i++) {

if (a[i].d == -1) {

int xx = a[i].x - rr * 2;

int lll = 0, rrr = k + 1;

while (lll + 1 < rrr) {

int mid = (lll + rrr) >> 1;

if (f[mid] >= xx)rrr = mid;

else lll = mid;

}

ans += k - rrr + 1;

}

else {

f[++k] = a[i].x;

}

}

cout<<ans;

return 0;

}

------------------------------------------------------

Problem6200:

#include <bits/stdc++.h>

using namespace std;

#define int long long

int k, m, n;

struct Point {

int pos, val;

};

vector<Point> point;

bool cmp(Point a, Point b) {

return a.pos < b.pos;

}

signed main() {

ios::sync_with_stdio(false);

cin >> k >> m >> n;

for (int i = 0; i < k; i++) {

int p, t;

cin >> p >> t;

point.push_back({ p, t });

}

for (int i = 0; i < m; i++) {

int p; cin >> p;

point.push_back({ p, -1 });

}

sort(point.begin(), point.end(), cmp);

int lp = 0, rp = 0;

for (int i = 0; i < point.size(); i++)

if (point[i].val == -1) { lp = i; break; }

for (int i = point.size() - 1; i >= 0; i--)

if (point[i].val == -1) { rp = i; break; }

priority_queue<int> Q;

for (int lb = lp, rb; lb < rp; lb = rb) {

for (int i = lb + 1; i <= rp; i++)

if (point[i].val == -1) { rb = i; break; }

int Max = 0, l = lb + 1, sum = 0, all = 0;

for (int r = lb + 1; r < rb; r++) {

sum += point[r].val, all += point[r].val;

double lRangePos = point[r].pos - (point[rb].pos - point[lb].pos) / 2;

while (point[l].pos <= lRangePos) {

sum -= point[l].val, l++;

}

Max = max(Max, sum);

}

Q.push(all - Max), Q.push(Max);

}

int allL = 0, allR = 0;

for (int i = 0; i < lp; i++) allL += point[i].val;

for (int i = point.size() - 1; i > rp; i--) allR += point[i].val;

Q.push(allL), Q.push(allR);

int ans = 0;

while (!Q.empty() && n) {

ans += Q.top(); Q.pop();

n--;

}

cout << ans;

}

------------------------------------------------------

Problem6255:

#include<bits/stdc++.h>

using namespace std;

int main(){

long long a,b,i,j,k,s=1;

cin>>a>>b;

if(!(a<=1000000000&&b<=1000000000&&a*b<=1000000000)){

cout<<"-1";return 0;

}

if(a==1) {

cout<<"1";return 0;

}

for(i=0;i<b;i++){

s*=a;

if(s>1000000000){

cout<<"-1";

return 0;

}

}

cout<<s;

}

------------------------------------------------------

Problem6285:

#include<bits/stdc++.h>

using namespace std;

long long a[100000];

int P(long long x){

for(long long i=2;i*i<=x;i++){

if(x%i==0) return 0;

}

return 1;

}

int main(){

long long b=0,i,j,k,s=1,t,ans=0;

cin>>s;

if(P(s)) cout<<"0";

else cout<<"1";

}

------------------------------------------------------

Problem6286:

#include<bits/stdc++.h>

using namespace std;

const int N=1e5+10;

const int M=1010;

int n;

int a[N];

int b[M];

int main(){

cin>>n;

int i;

for(i=1;i<=n;i++){

cin>>a[i];

b[a[i]]++;

}

if(b[0]==0){

cout<<0<<endl;

return 0;

}

int sum=0;

for(i=0;i<=1000;i++){

if(b[i]==0)break;

if(b[i]<=b[i+1])b[i+1]=b[i];

else sum+=(i+1)*(b[i]-b[i+1]);

}

cout<<sum<<endl;

}

------------------------------------------------------

Problem6307:

#include<bits/stdc++.h>

using namespace std;

int main(){

int a[50001],i,j,k,mx=1,mxxx=1,n;

cin>>n;

for(i=0;i<n;i++){

cin>>a[i];

}

for(i=0;i<n;i++){

if(a[i]<a[i+1]){

mx++;

if(mx>mxxx)mxxx=mx;

}

else mx=1;

}

cout<<mxxx;

}

------------------------------------------------------

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值