安利 : プログラミングで彼女をつくる 全攻略~
安利一个网站,hhh
这个网站是一个攻略妹子的网站哦~
「つり目セット」ゲットチャレンジ!
ある正の整数 n が入力されます。
n 回「Ann」と繋げて「AnnAnnAnnAnn......」と出力して下さい。
例えば以下のような入力の場合
3
以下のように出力してください
AnnAnnAnn
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
cout<<"Ann";
cout<<endl;
}
「眼帯」ゲットチャレンジ!
あなたは、巻数が全 N 巻の古い本を集めています。
古本屋に訪れたあなたは売られている各巻のうち買うべきなのは何巻かを知りたいです。
あなたの持っている巻のリストと、中古本屋で売られている巻のリストを入力として与えられたとき、
あなたの買うべき巻のリストを出力してください。
#include<stdio.h>
#include<iostream>
using namespace std;
const int maxn = 1050;
int b[maxn],a[maxn];
int n,m1,m2,x;
int main()
{
scanf("%d",&n);
scanf("%d",&m1);
for(int i=1;i<=m1;i++)
scanf("%d",&x),b[x]=1;
scanf("%d",&m2);
for(int i=1;i<=m2;i++)
scanf("%d",&x),a[x]=1;
int flag = 0;
for(int i=1;i<=n;i++)
if(!b[i]&&a[i])flag=1;
if(flag==0)return puts("None"),0;
for(int i=1;i<=n;i++)
{
if(!b[i]&&a[i]&&flag)
{
flag=0;
printf("%d",i);
}
else if(!b[i]&&a[i])
printf(" %d",i);
}
printf("\n");
}
「ショートヘアセット」ゲットチャレンジ!
正の整数が a, b が改行区切りで入力されます。
a + b を計算し出力して下さい。
例えば以下のような入力の場合
9
23
以下のように出力してください
32
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
cout<<a+b<<endl;
}
「セーラー服セット」ゲットチャレンジ!
プログラマーのあなたは複数の単語を繋ぎ合わせた変数名を自動で作るプログラムを作成しようと考えています。
1 行目に単語の総数 n 、2行目以降改行区切りで n 個の単語が入力されるので「_」で繋ぎ合わせたものを出力してください。
例えば以下のような入力の場合
3
paiza
online
hackathon
以下のように出力してください。
paiza_online_hackathon
#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
string s[104];
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)cin>>s[i];
cout<<s[1];
for(int i=2;i<=n;i++)
cout<<"_"<<s[i];
cout<<endl;
}
「セーラー服セット」ゲットチャレンジ!
あなたはクライアントから画像分析の仕事を受けました。
N × N ピクセルの白黒画像と M × M ピクセルの白黒画像が与えられます。 白黒画像の各画素は 0 または 1 のいずれかです。 N × N ピクセルの画像を入力、M × M ピクセルの画像をパターンと呼ぶことにします。
あなたの仕事は、入力からパターンとの完全一致を探すことです。
入力とパターンがピクセルの位置 (y, x) で完全一致するとは、 全ての i, j (i = 0, 1, ... M - 1, j = 0, 1, ... M - 1) について、 (入力の位置 (y + j, x + i) におけるピクセル) = (パターンの位置 (j, i) におけるピクセル) が成立することをいいます。
また、依頼主からは、入力にはパターンと完全一致する箇所は必ず 1 つだけ存在するということを 伝えられています。
ここで、N = 4 の入力の例を見てみましょう。
図中の赤い線で囲まれている部分とパターンが完全一致していることがわかります。 完全一致のピクセルの位置、すなわち、(1, 0) を出力してください。
#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
int s[105][105];
int s2[15][15];
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
scanf("%d",&s[i][j]);
int m;
scanf("%d",&m);
for(int i=0;i<m;i++)
for(int j=0;j<m;j++)
scanf("%d",&s2[i][j]);
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(i+m>n||j+m>n)continue;
int flag = 0;
for(int i1=0;i1<m;i1++)
for(int j1=0;j1<m;j1++)
if(s[i+i1][j+j1]!=s2[i1][j1])flag=1;
if(flag==0)
{
printf("%d %d\n",i,j);
return 0;
}
}
}
}
「猫耳セット」ゲットチャレンジ!
ある半角小文字アルファベットで構成される文字列 S が与えられます。
S に含まれる文字列 "cat" の数を出力してください。
例えば
acatbccatd
と入力された場合
2
と出力して下さい
#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
string s;
int main()
{
cin>>s;
int ans = 0;
for(int i=0;i<s.size()-2;i++)
if(s[i]=='c'&&s[i+1]=='a'&&s[i+2]=='t')
ans++;
cout<<ans<<endl;
}
「猫セット」ゲットチャレンジ!
ある半角小文字アルファベット "c", "a", "t" で構成される文字列 S が与えられます。
文字列 Sに 含まれる "c", "a", "t" を1つずつ集め "cat" という文字列をあなたは作ろうとしています。
"cat" と完全に作れる個数、余った "c", "a", "t" から "cat" を作るのに必要なそれぞれの個数を求め
完全に作れる個数、必要な "c" の個数、必要な "a" の個数、必要な "t" の個数の順に改行区切りで出力して下さい。
例えば
ctacct
と入力された場合
c が 3文字 a が 1文字 t が 2文字
となり "cat" は1つ作ることができ、 "c" が2つ "t" が1つ余ります。
"a" があと 2つ、 "t" があと1つで2つの "cat" が作ることができるので
1
0
2
1
#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
string s;
int a[3];
int main()
{
cin>>s;
int ans = 0;
for(int i=0;i<s.size();i++)
{
if(s[i]=='c')a[0]++;
if(s[i]=='a')a[1]++;
if(s[i]=='t')a[2]++;
}
int mi = min(a[0],min(a[1],a[2]));
int ma = max(a[0],max(a[1],a[2]));
cout<<mi<<endl;
for(int i=0;i<3;i++)
cout<<ma-a[i]<<endl;
}
「ロングヘアセット」ゲットチャレンジ!
yes か no か5票の投票が行われます。数の多い方を出力して下さい。
例えば以下のような入力の場合
yes
yes
no
yes
no
以下のように出力してください
yes
#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
string s;
int a,b;
int main()
{
for(int i=0;i<5;i++)
{
cin>>s;
if(s=="yes")a++;
else b++;
}
if(a>b)printf("yes\n");
else printf("no\n");
}
「ポニーテールセット」ゲットチャレンジ!
ある数字 n が入力されます。 n から 0 までカウントダウンし 0 の時のみ「0!!」と出力するプログラムを作成して下さい。
例えば 5 からカウントが始まった場合
5
4
3
2
1
0!!
のように出力してください。
#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
for(int i=n;i>=1;i--)printf("%d\n",i);
printf("0!!\n");
}
「ツインテールセット」ゲットチャレンジ!
あなたは仕事の締め切りが近いので徹夜をしなければいけなくなりました。
エナジードリンクを買って気合を入れましょう。
2 つの選択肢がありますが、とにかく眠気を撃退したいのでこの際味などは気にせず「カフェイン量」と「値段」を見てコストパフォーマンスが高いものを選びましょう。「カフェイン量」を「値段」で割った値をコストパフォーマンスとします。
なお、コストパフォーマンスは必ずどちらか一方のほうが高いものとします。
例)
カフェイン量(mg) 値段(円)
ドリンク 1 200 250
ドリンク 2 180 200
コストパフォーマンス:
ドリンク 1 → 200 ÷ 250 = 0.8
ドリンク 2 → 180 ÷ 200 = 0.9
したがってドリンク 2 が選ばれます。
#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
double a[2],b[2];
int main()
{
for(int i=0;i<2;i++)cin>>a[i]>>b[i];
if(a[0]/b[0]>a[1]/b[1])cout<<"1"<<endl;
else cout<<"2"<<endl;
}
「カーディガンセット」ゲットチャレンジ!
ある正の整数 n が入力されます。
1 から n を全て掛けあわせた数を出力して下さい。
例えば以下のような入力の場合
4
1 × 2 × 3 × 4 を計算し以下のように出力してください。
24
#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
int main()
{
long long n;
cin>>n;
long long ans = 1;
for(int i=1;i<=n;i++)
ans=ans*i;
cout<<ans<<endl;
}
「縞ニーソセット」ゲットチャレンジ!
赤と白の等間隔の縞模様をあなたは作ろうとしています。
各色の幅 n 、縞模様全体の長さ m が改行区切りで入力されます。
赤を 'R' 、白を 'W' とした赤から始まる縞模様を出力して下さい。
例えば
3
10
のような入力の場合
RRRWWWRRRW
のように出力してください。
#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
for(int i=0;i<b;i++)
{
if((i/a)%2)cout<<"W";
else cout<<"R";
}
cout<<endl;
}
「水着」ゲットチャレンジ!
階乗とは数学の演算の一つで、N の階乗をN! と書きます。N が自然数であるとき、階乗は次のように計算できます。
N! = N * (N - 1) * ... * 2 * 1
N が与えられたとき、N! のすべての桁の代わりに、N! の最下位桁から続く0 をすべて除いた値の下位9桁を求めるプログラムを作成してください。
9桁ではあるが先頭が0であるような場合は先頭の0を取り除いた値を出力してください。先頭に0のついた値を出力すると誤答となります。
例えば N = 38 の時は以下のようになります。
#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
const int mod = 1e9;
long long a,b;
int main()
{
long long n;
cin>>n;
long long ans = 1;
for(int i=1;i<=n;i++)
{
long long p = i;
while(p%5==0)p/=5,a++;
while(p%2==0)p/=2,b++; ;
ans = ans * p % mod;
}
for(int i=a+1;i<=b;i++)
ans = ans * 2 % mod;
cout<<ans<<endl;
}
「サンタ服」ゲットチャレンジ!
幅 X cm、奥行き Y cm、高さ Z cm の直方体の形をしたケーキがあります。 このケーキに「側面と平行な方向」および「前面と平行な方向」に何回か包丁を入れて、小さなケーキに切り分けることを考えます。 上面と平行な方向(水平方向)には包丁を入れません。
包丁を入れる場所が与えられたとき、切り分けられたケーキの中で最も体積が小さいものを求めてください。
#include<iostream>
#include<stdio.h>
#include<cstring>
#include<algorithm>
using namespace std;
const int mod = 1e9;
int a[1005],b[1005];
int tot1=1,tot2=1;
int main()
{
int x,y,z;
cin>>x>>y>>z;
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
int op,t;
scanf("%d%d",&op,&t);
if(op==0)a[tot1++]=t;
else b[tot2++]=t;
}
a[0]=0,a[tot1]=x;
b[0]=0,b[tot2]=y;
sort(a,a+tot1+1);
sort(b,b+tot2+1);
int mi1 = 1e9,mi2 = 1e9;
for(int i=1;i<=tot1;i++)
mi1=min(mi1,a[i]-a[i-1]);
for(int i=1;i<=tot2;i++)
mi2=min(mi2,b[i]-b[i-1]);
cout<<mi1*mi2*z<<endl;
}
「メイド服セット」ゲットチャレンジ!
あなたは毎日朝7時に起きて、残業がなければ8時間働いて、6時間眠ります。
残業のあった日は疲れるので、残業した時間の1/3だけ、睡眠時間が増えます。
きちんと朝7時に起きるためには、前日の何時何分に寝ればよいかを計算してください。
幸い、あなたの会社は3分刻みで残業時間を記録するので、何秒に寝ればよいかを考える必要はありません。
#include<iostream>
#include<stdio.h>
#include<cstring>
#include<algorithm>
using namespace std;
const int mod = 1e9;
void solve(int t)
{
int h = 1,m = 0;
int h1 = t/60,m1 = t%60;
if(m1!=0)h--,m=60-m1;
h-=h1;
if(h<0)h+=24;
if(h<10)printf("0%d:",h);
else printf("%d:",h);
if(m<10)printf("0%d\n",m);
else printf("%d\n",m);
}
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int m;
scanf("%d",&m);
m/=3;
solve(m);
}
}