Submission #28551916


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
#define rep(i,a,n) for (int i=a;i<n;i++)//iをaからn
#define per(i,n,a) for (int i=a-1;i>=n;i--)//iをnからa
#define db(x) cout << #x << " = " << x << endl//デバッグ用
#define db2(x, y) cout << "(" << #x << ", " << #y << ") = (" << x << ", " << y << ")\n"; //デバッグ用
#define all(x) (x).begin(), (x).end()
#define INF32 2147483647 //2.147483647×10^{9}:32bit整数のinf
#define INF64 9223372036854775807 //9.223372036854775807×10^{18}:64bit整数のinf
#define MOD 998244353 //10^9+7:合同式の法
#define pb push_back
#define mp make_pair
#define F first
#define S second
typedef long long ll;
//sort(all(a)); ソート
//sort(all(a),greater<int>()); 逆順ソート
//a.erase(unique(all(a)), a.end()); ソート後に重複を削除
//cout<< std::fixed << std::setprecision(15)<<0.000001<<endl; 小数点以下を表示させる
//vector<vector<int>> data(3, vector<int>(4)); int型の2次元配列(3×4要素の)の宣言
int rota(int n){
    int keta=1;
    int nnn=n;
    while(nnn/10){
        nnn/=10;
        keta*=10;
    }
    return n/10+(n%10)*keta;
}

int main (){
    ll a,n;
    set<int> nums;
    vector<int> nownums;
    
    cin>>a>>n;

    int ans=MOD;
    nownums.pb(1);
    rep(i,0,1000000){
       set<int> nextnums;
       rep(j,0,nownums.size()){
           ll nown=nownums.at(j);
           if(nown*a<n*11){
                if(nums.count(nown*a)==0){
                    nextnums.insert(nown*a);
                }
           }
           if(nown%10!=0){
                ll nextn=rota(nown);
                if(nums.count(nextn)==0){
                    nextnums.insert(nextn);
                }
           }
       }
       if(nextnums.count(n)!=0){
           ans=i+1;
           break;
       }
       if(nextnums.empty()){
           break;
       }
       vector<int> vec(nextnums.begin(), nextnums.end());
       nownums=vec;
       nums.merge(nextnums);
    }
    if(ans==MOD){
    cout<<-1;    
    }else{
    cout<<ans;
    }

    return 0;
}

Submission Info

Submission Time
Task D - Multiply and Rotate
User naname
Language C++ (GCC 9.2.1)
Score 0
Code Size 2114 Byte
Status TLE
Exec Time 2208 ms
Memory 85404 KiB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:3:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
    3 | #define rep(i,a,n) for (int i=a;i<n;i++)//iをaからn
......
   42 |        rep(j,0,nownums.size()){
      |            ~~~~~~~~~~~~~~~~~~     
./Main.cpp:42:8: note: in expansion of macro ‘rep’
   42 |        rep(j,0,nownums.size()){
      |        ^~~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 400
Status
AC × 4
AC × 16
TLE × 3
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_a_eq_2_00.txt, 01_a_eq_2_01.txt, 01_a_eq_2_02.txt, 01_a_eq_2_03.txt, 01_a_eq_2_04.txt, 01_a_eq_2_05.txt, 02_a_eq_3_00.txt, 02_a_eq_3_01.txt, 02_a_eq_3_02.txt, 03_random_00.txt, 03_random_01.txt, 03_random_02.txt, 03_random_03.txt, 04_max_00.txt, 05_min_00.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 7 ms 3464 KiB
00_sample_01.txt AC 3 ms 3544 KiB
00_sample_02.txt AC 4 ms 3420 KiB
00_sample_03.txt AC 1673 ms 60412 KiB
01_a_eq_2_00.txt TLE 2045 ms 78268 KiB
01_a_eq_2_01.txt TLE 2085 ms 71496 KiB
01_a_eq_2_02.txt AC 283 ms 22148 KiB
01_a_eq_2_03.txt TLE 2208 ms 85404 KiB
01_a_eq_2_04.txt AC 1423 ms 54908 KiB
01_a_eq_2_05.txt AC 1633 ms 60276 KiB
02_a_eq_3_00.txt AC 19 ms 5120 KiB
02_a_eq_3_01.txt AC 67 ms 8332 KiB
02_a_eq_3_02.txt AC 115 ms 11064 KiB
03_random_00.txt AC 2 ms 3480 KiB
03_random_01.txt AC 2 ms 3620 KiB
03_random_02.txt AC 3 ms 3536 KiB
03_random_03.txt AC 2 ms 3588 KiB
04_max_00.txt AC 2 ms 3488 KiB
05_min_00.txt AC 2 ms 3512 KiB