链接
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;
}
------------------------------------------------------