結果

問題 No.438 Cwwプログラミング入門
ユーザー ytft
提出日時 2021-03-24 15:03:50
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
OLE  
実行時間 -
コード長 1,305 bytes
コンパイル時間 2,283 ms
コンパイル使用メモリ 171,532 KB
実行使用メモリ 10,148 KB
最終ジャッジ日時 2024-11-26 22:58:07
合計ジャッジ時間 13,488 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 97 OLE * 1
権限があれば一括ダウンロードができます

ソースコード

diff #

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

int 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