Submission #20876

#TimeUsernameProblemLanguageResultExecution timeMemory
20876kdh9949생일수 I (GA4_birthday1)C++14
14 / 100
109 ms13652 KiB
#include <stdio.h> #include <queue> using namespace std; struct mindol{ int three,five,eight; bool operator<(const mindol &a)const{ int digit=three+five+eight; int adigit=a.three+a.five+a.eight; if(digit==adigit){ if(three==a.three){ if(five==a.five){ return eight<a.eight; } return five<a.five; } return three<a.three; } return digit<adigit; } }ans[1000010]; queue<mindol> q; void init(){ for(int i=0;i<=1000000;i++)ans[i]={98769876,98769876,98769876}; q.push({0,0,0}); mindol cur; int sum; while(!q.empty()){ cur=q.front(); sum=cur.three*3+cur.five*5+cur.eight*8; q.pop(); if(!(cur<ans[sum]))continue; ans[sum]=cur; q.push({cur.three+1,cur.five,cur.eight}); q.push({cur.three,cur.five+1,cur.eight}); q.push({cur.three,cur.five,cur.eight+1}); } } int main() { init(); int t,n; scanf("%d",&t); for(int i=0;i<t;i++){ scanf("%d",&n); if(ans[n].three==98769876){puts("-1");continue;} for(int j=0;j<ans[n].three;j++)putchar('3'); for(int j=0;j<ans[n].five;j++)putchar('5'); for(int j=0;j<ans[n].eight;j++)putchar('8'); putchar('\n'); } }

Compilation message (stderr)

birthday1.cpp: In function 'int main()':
birthday1.cpp:46:23: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d",&t);
                       ^
birthday1.cpp:48:27: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             scanf("%d",&n);
                           ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...