//A
#include<iostream>
using namespace std;
const int Max = 1e6;
int main(){
int n,m,s[Max];
int i=0,j=0;
cin>>n;
while(n--){
cin>>m;
while(1){
if(i!=0 && s[i] - m==1){
i--;
j++;
continue;
}
else if(i!=0 && m - s[i]==1){
j++;
}
else{
i++;
s[i] = m;
}
break;
}
}
cout<<j;
return 0;
}//B*(一直在超时)
#include<cstdio>
int a[1000000],p[1000000];
int i,j,m=1000000,tail=0,T,N;
void intit(){
a[0]=0;a[1]=0;
for(i=2;i<m;i++){
a[i]=1;
for(j=2;j*j<=i;j++){
if(i%j==0){a[i]=0;break;}
}
if(a[i]){p[tail]=i;tail++;}
}
}
int main(){
intit();
scanf("%d",&T);
while(T--){
scanf("%d",&N);
for(i=0;p[i]<=N/2;i++){
if(a[N-p[i]]==1){
printf("%d %d\n",p[i],N-p[i]);
break;
}
}
}
return 0;
}//C
#include<iostream>
using namespace std;
char s[21][21];
int w,h,sum;
void wer(int x,int y){
int direct[4][2]={1,0,-1,0,0,1,0,-1};
for(int i=0;i<4;i++){
if(x+direct[i][0]>=h || y+direct[i][1]>=w || x+direct[i][0]<0 || y+direct[i][1]<0)continue;
if(s[x+direct[i][0]][y+direct[i][1]]=='.'){
s[x+direct[i][0]][y+direct[i][1]]='@';
sum++;
wer(x+direct[i][0],y+direct[i][1]);
}
}
}
int main(){
int ii,jj;
while(1){
sum=0;
cin>>w>>h;
if(w==0 && h==0)break;
for(int i=0;i<h;i++){
for(int j=0;j<w;j++){
cin>>s[i][j];
if(s[i][j]=='@'){ii=i;jj=j;sum++;}
}
}
wer(ii,jj);
cout<<sum<<endl;
}
return 0;
}//D
#include<iostream>
using namespace std;
int main(){
int n,m,i=0;
cin>>n>>m;
if(m%n!=0)cout<<"-1";
else{
int x=m/n;
while(x!=1){
if(x%2==0){
x=x/2;
i++;
}
else if(x%3==0){
x=x/3;
i++;
}
else{
break;
}
}
if(x>1)cout<<"-1";
else cout<<i;
}
return 0;
}//E
#include <iostream>
#include <cstdio>
using namespace std;
int N,K,res;
int tail,a[100][2];
int x[10]={0},y[10]={0};
void retu(int aa,int t){
if(t == K) {
res++;
return ;
}
if(aa>=tail) return ;
int p1 = a[aa][0],p2 = a[aa][1];
if(!x[p1] && !y[p2]){
x[p1] = 1;
y[p2] = 1;
retu(aa+1,t+1);
x[p1] = 0;
y[p2] = 0;
}
retu(aa+1,t);
}
int main(){
while(scanf("%d %d",&N,&K)){
if(N == -1 && K == -1) break;
res = 0;tail = 0;
for(int i = 0;i<N;i++){
for(int j = 0;j<N;j++){
char c;scanf(" %c",&c);
if(c == '#') {a[tail][0] = i;a[tail][1]=j;tail++;}
}
}
retu(0,0);
printf("%d\n",res);
}
return 0;
}
//F
#include<iostream>
using namespace std;
int n,sum,s[1010],hs[1010];
int Max(int a,int b){
if(a>b)return a;
else return b;
}
int main(){
while(1){
sum=0;
cin>>n;
if(n==0)break;
for(int i=0;i<n;i++){
cin>>s[i];
}
for(int i=0;i<n;i++){
hs[i] = s[i];
for(int j=0;j<i;j++){
if(s[j]<s[i]){
hs[i] = Max(hs[i],hs[j]+s[i]);
}
}
}
for(int i=0;i<n;i++){
sum = Max(sum,hs[i]);
}
cout<<sum<<endl;
}
return 0;
}//G
#include<iostream>
using namespace std;
int prime(int a){
for(int i=2;i*i<=a;i++){
if(a%i==0)return 0;
}
return 1;
}
int main(){
int a;
for(int i=1;;i++){
cin>>a;
if(a<=0)break;
cout<<i<<": ";
if(a==1 || a==2)
cout<<"no\n";
else if(prime(a))
cout<<"yes\n";
else
cout<<"no\n";
}
return 0;
}//H
#include <iostream>
using namespace std;
int a,b,first[110],second[110],x,chang;
void sce(){
while(1){
chang = 1;
for(int i=0;i<b;i++){
int z=second[i];
if(first[z-1]>first[z]){
x = first[z-1];first[z-1] = first[z];first[z] = x;
chang = 0;
}
}
if(chang)break;
}
for(int i=0;i<a-1;i++){
if(first[i]>first[i+1]){cout<<"NO\n";chang =0;break;}
}
if(chang)cout<<"YES\n";
}
int main(){
int n;
cin>>n;
while(n--){
cin>>a>>b;
for(int i=0;i<a;i++)cin>>first[i];
for(int i=0;i<b;i++)cin>>second[i];
sce();
}
return 0;
}//I
#include<iostream>
#include<cstdio>
using namespace std;
short n;
int m1,m2;
int sum;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>m1>>m2;
printf("Case %d: ",i);
sum = m2;
for(int j=1;;j++){
if(sum % m1 == 0){cout<<j<<endl;break;}
sum = (sum*10+m2)%m1;
}
}
return 0;
}//J
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
const double pi = acos(-1);
const int Max=1e4+10;
int T,m,n,x;
double lol,maest,ever,lon[Max];
double max(double a,double b){
if(a>b) return a;
else return b;
}
int main(){
cin>>T;
while(T--){
maest=0;
cin>>n>>m;
for(int i=0;i<n;i++){cin>>x;lon[i]=(pi)*x*x;maest = max(maest,lon[i]);}
m++;
ever = maest/m;
while(maest-ever>1e-5){
lol = (ever+maest)/2;
int sum1=0;
for(int i=0;i<n;i++){
sum1+=int(lon[i]/lol);
}
if(sum1>=m) ever=lol;
else maest=lol;
}
printf("%.4lf\n",ever);
}
return 0;
}//k
#include<iostream>
#include<string>
#include<cstring>
#include<map>
using namespace std;
int main()
{
int T;
cin>>T;
while(T--)
{
string fruit,place;
int num,n;
cin>>n;
map<string,map<string,int> >a;
map<string,map<string,int> >::iterator p;
while(n--){
cin>>fruit>>place>>num;
a[place][fruit]+=num;
}
for(p=a.begin();p!=a.end();p++){
cout<<p->first<<endl;
map<string,int>::iterator p1;
for(p1=p->second.begin();p1!=p->second.end();p1++)
cout<<" |----"<<p1->first<<"("<<p1->second<<")"<<endl;
}
if(T) cout<<endl;
}
return 0;
}
//L
#include<iostream>
#include<algorithm>
using namespace std;
int T,n,m,a,b,sum1,sum2,sum3,sum4;
int main(){
cin>>T;
while(T--){
cin>>n>>m>>a>>b;
sum1=max(n*(m-b-1),n*b);
sum2=max((n-1-a)*m,a*m);
sum3=max(sum1,sum2);
cout<<sum3<<endl;
}
return 0;
}//M
#include<iostream>
#include<iostream>
using namespace std;
int n,k;
int err[110][110];
int dfs(int a,int b){
if(b==1){
for(int i=0;i<100;i++)err[a][i+1]=err[a][i];
return 0;
}
for(int i=0;i<b-1;i++){
err[a+1][i] = err[a][i+1]-err[a][i];
}
dfs(a+1,b-1);
for(int i=b;i<100;i++){
err[a][i] = err[a][i-1]+err[a+1][i-1];
}
return 0;
}
int main(){
int T;
cin>>T;
while(T--){
cin>>n>>k;
for(int i=0;i<n;i++)cin>>err[0][i];
dfs(0,n);
for(int i=n;i<n+k;i++){cout<<err[0][i];if(i==n+k-1)break;cout<<" ";}
cout<<endl;
}
return 0;
}//N
#include<iostream>
#include<cstdio>
using namespace std;
const int Max=1e6+10;
int T,n;
double s[Max];
void sum1(){
double sm=0;
for(int i=1;i<=100000000;i++){
sm+=1/double(i);
if(i%100==0)s[i/100]=sm;
}
}
int main(){
sum1();
cin>>T;
for(int i=1;i<=T;i++){
cin>>n;
double su=s[n/100];
for(int i=n/100*100+1;i<=n;i++){su+=(1/double(i));}
printf("Case %d: %.9lf\n",i,su);
}
return 0;
} 
京公网安备 11010502036488号