東方の海

サブカル考察など。

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- --:-- | スポンサー広告 | トラックバック(-) | コメント(-) |
AtCoder Regular Contest 048に参加しました。
A問題はそこそこな時間でできましたが、B問題で関数のスコープでてこずりかつTime Limit Exceededになってしまいだめでした。どこがそんなに処理に時間がかかるんでしょう……(>_<)

順位は330位でした。A:100 (2) 37:47で、残りは-で、合計100 (2) 47:47でした。 前回よりも善戦したんじゃないかな、かな?

さて、解説で専用ライブラリを書いているような話がありましたが、やはりコンテストで使えるようにライブラリを書いておくのはとてもアドバンテージがあるようですね。科学計算で使うときには便利なライブラリを自作していましたが、コンテスト用にも書いておこうかな……。

あと、C++って型が異様に厳しく、関数を作るときも型明示が必要(オーバーロードが可能になっている)なんですね。あと、配列の操作などでよく使う操作が一発で書けないことが多く回りくどいように感じます。C++11以降かC#に移りたい気がします。C++が人気になった頃はCが古い言語と言われることもありましたが、今はC#やC++11に対してC++が古い言語、といった感じでしょうか。最近話題のC#もそろそろC++11に対して古い言語に感じるようになるのでしょうか?

ともかく、解説でちょくだいさんがC#を使っていたのが印象的でした。

A問題
#include 
#include
#include
using namespace std;
long abs(long a)
{
if(a<0){
return -a;
}
else{
return a;
}
}
int main(){
long a,b;
cin >> a >> b;
long d = abs(a-b);
long D = a*b;
if(D<0){
cout << d-1 << endl;
}
if(D>=0){
cout << d << endl;
}
return 0;
}


B問題
#include 
using namespace std;

int rate(int a, int b){
if(a>b){
return 1;
}
if(a return 2;
}
else{
return 3;
}
}

int janken(int a, int b){
if(a==b-1 || a==b+2){
return 1;
}
if(b==a-1 || b==a+2){
return 2;
}
else{
return 3;
}
}

int main(){
int N;
cin >> N;
int R[N],H[N];
for(int i = 0; i < N; i++){
cin >> R[i] >> H[i];
}
int a[N],b[N],c[N] = {0};
for(int i = 0; i < N; i++){
for(int j = 0; j < N; i++){
if(rate(R[i],R[j])==1){
a[i] += 1;
}
if(rate(R[i],R[j])==2){
b[i] += 1;
}
if(rate(R[i],R[j])==3){
c[i] += 1;
;
}
}
cout << a[i] << " " << b[i] << " " << c[i] << endl;
}
}
スポンサーサイト
2016.03.05 23:46 | プログラミング | トラックバック(-) | コメント(0) |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。