Submission #331424

#TimeUsernameProblemLanguageResultExecution timeMemory
331424Sho10Devil's Share (RMI19_devil)C++14
0 / 100
86 ms1388 KiB
#include <bits/stdc++.h> //Andrei Alexandru a.k.a Sho10 #define ll long long #define double long double #pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #define all(a) (a).begin(), (a).end() #define f first #define s second #define pb push_back #define mp make_pair #define pi pair #define rc(s) return cout<<s,0 #define endl '\n' #define mod 1000007 #define PI 3.14159265359 #define MAXN 100005 #define INF 1000000005 #define LINF 1000000000000000005ll #define CODE_START ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); using namespace std; ll t,cnt[10],k,cnt2[10]; string ans=""; ll check(ll nr){ ans=""; ll s1,s2; s1=nr%10; ll valhalla; valhalla=nr/10; s2=valhalla%10; ll sum=0; swap(s1,s2); for(ll j=s1+1;j<=9;j++) { sum+=cnt[j]; } if(sum>1){ return 0; } if(sum==1){ for(ll j=s1+1;j<=9;j++) { if(cnt[j]){ ans+=(j+'0'); } } } for(ll j=1;j<=9;j++) { cnt2[j]=cnt[j]; } if(sum==0){ for(ll j=s1;j>=1;j--) { if(cnt2[j]){ ans+=(j+'0'); cnt2[j]--; break; } } } while(cnt2[s1]>=1){ for(ll j=1;j<=s1;j++) { if(cnt2[j]){ cnt2[j]--; ans+=(j+'0'); break; } } ans+=(s1+'0'); cnt2[s1]--; } for(ll i=1;i<s1;i++) { while(cnt2[i]){ ans+=(i+'0'); cnt2[i]--; } } reverse(ans.begin(),ans.end()); for(ll i=0;i<ans.size();i++) { if(i+1<ans.size()){ ll val=(ans[i]-'0')*10+(ans[i+1]-'0'); if(val>nr){ return 0; } } } return 1; } int32_t main(){ CODE_START; cin>>t; while(t--){ cin>>k; for(ll i=1;i<=9;i++) { cin>>cnt[i]; } ll l=11,r=99,res=0; while(l<=r){ ll mid=(l+r)/2; if(check(mid)){ res=mid; r=mid-1; }else l=mid+1; } check(res); cout<<ans<<endl; } } /* Subtask 2: 1 2 1 1 2 0 0 0 0 0 0 */

Compilation message (stderr)

devil.cpp: In function 'long long int check(long long int)':
devil.cpp:81:13: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   81 | for(ll i=0;i<ans.size();i++)
      |            ~^~~~~~~~~~~
devil.cpp:83:11: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   83 |     if(i+1<ans.size()){
      |        ~~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...