大大的传送门:就是这里
这一道卡在了特判的 1 0
本来输出 0 0
输出 -1 -1了,就错了,,
这道题就是一个恨好的贪心,往大了贪
下面是代码
#include <cstdio> #include <cstring> #include <vector> using namespace std; int n,m; int ans[110]; int main(){ scanf("%d%d",&n,&m); memset(ans,0,sizeof(ans)); if(n>1&&m==0||m/n>9||m/n==9&&m%n!=0){ puts("-1 -1"); } else if(n==1&&m==0) { printf("0 0\n"); } else{ int min=m; int num=0; while(min>0){ if(min<9){ ans[num++]=min; min=0; } else{ ans[num++]=9; min-=9; } } //printf("num==%d\n",num); if(num==n){ for(int i=n-1;i>=0;i--) printf("%d",ans[i]); printf(" "); } if(num<n){ printf("1"); for(int i=1;i<n-num;i++) printf("0"); printf("%d",ans[num-1]-1); for(int i=0;i<num-1;i++) printf("9"); printf(" "); } if(num>n){ printf("-1 "); } int max=m; int cnt=0; while(cnt<n){ if(max<9&&max>0){ printf("%d",max); max=0; } else if(max>=9) { printf("9"); max-=9; } else{ printf("0"); } cnt++; } printf("\n"); } }
时间: 2024-10-05 13:04:03