| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:大水题,都不用苯地debug就1AIn Reply To:大水题,都不用苯地debug就1A Posted by:KatrineYang at 2016-10-23 12:50:24 > #include <iostream>
> #include <string.h>
> #include <stdio.h>
> #include <stdlib.h>
> using namespace std;
>
> char thresStr[10], paper[10];
> int thres;
> int state;
> int mx;
> int len;
> int res[10];
> int intv[11][11];
> int resGs;
>
> bool init(){
> scanf("%s%s", thresStr, paper);
> thres = atoi(thresStr);
> if(strcmp(paper, "0") == 0 && (!thres)){
> return 0;
> }
> mx = -1;
> len = strlen(paper);
> state = 0;
> for(int i = 0; i < len; i++) intv[i][i] = 0;
> for(int j = 0; j < len; j++){
> for(int i = j+1; i <= len; i++){
> intv[j][i] = 10 * intv[j][i-1] + (paper[i-1]-'0');
> }
> }
> return 1;
> }
>
> void solve(){
> int p2len = 1 << (len-1);
> for(int istate = 0; istate < p2len; istate++){
> int dbgs = 0;
> int dbPos[11];
> for(int i = 0; i < len-1; i++){
> if((istate >> i)%2 == 1){
> dbPos[dbgs] = i;
> dbgs++;
> }
> }
> dbPos[dbgs] = len-1;
> dbgs++;
> int curPos = 0;
> int sum = 0;
> int tmpRes[11];
> for(int i = 0; i < dbgs; i++){
> sum += intv[curPos][dbPos[i]+1];
> tmpRes[i] = intv[curPos][dbPos[i]+1];
> curPos = dbPos[i]+1;
> }
> if(sum <= thres && sum > mx){
> mx = sum;
> state = 0;
> resGs = dbgs;
> for(int i = 0; i < dbgs; i++){
> res[i] = tmpRes[i];
> }
> }
> else if(sum == mx){
> state = 1;
> }
> }
> }
>
> int main() {
> while(init()){
> solve();
> if(mx == -1){
> printf("error\n");
> }
> else if(state == 1){
> printf("rejected\n");
> }
> else{
> printf("%d", mx);
> for(int i = 0; i < resGs; i++){
> printf(" %d", res[i]);
> }
> printf("\n");
> }
> }
> return 0;
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator