結果

問題 No.438 Cwwプログラミング入門
ユーザー ytftytft
提出日時 2021-03-24 15:07:21
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 3 ms / 2,000 ms
コード長 1,311 bytes
コンパイル時間 1,890 ms
コンパイル使用メモリ 172,024 KB
実行使用メモリ 6,820 KB
最終ジャッジ日時 2024-11-26 23:08:56
合計ジャッジ時間 5,392 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 98
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;

long long func(long long a,long long b){
    return max(2*abs(a-b)-1,2*abs(a+b-1)+1);
}

int main(){
    long long x,y,z;
    cin>>x>>y>>z;
    if(z==0){
        cout<<"wwW"<<endl;
        return 0;
    }
    long long temp;
    int min=10001;
    vector<long long> memo(2);
    for(long long i=5000;i>-5000;i--){
        if(x!=0){
            if(abs(z-y*i)%x==0){
                if(min>func(i,(z-y*i)/x)){
                    min=func(i,(z-y*i)/x);
                    memo={i,(z-y*i)/x};
                }
            }
        }else{
            if(z==y*i){
                for(int j=0;j<=1;j++){
                    if(min>func(i,j)){
                        min=func(i,j);
                        memo={i,j};
                    }
                }
            }
        }
    }
    if(min==10001){
        cout<<"NO"<<endl;
        return 0;
    }
    vector<int> ord={(memo[0]>memo[1]?0:1),1-(memo[0]>memo[1]?0:1)};
    for(int i=1;i>=0;i--){
        for(int j=0;j<abs(memo[ord[i]]);j++){
            cout<<((ord[i])?'c':'w');
        }
    }
    if(memo[0]<=0&&memo[1]<=0){
        cout<<"wwWW";
    }
    for(int i=0;i<2;i++){
        for(int j=0;j<abs(memo[ord[i]])-1+i;j++){
            cout<<(memo[ord[i]]>0?'C':'W');
        }
    }
    cout<<endl;
}
0