Polycarp's phone book

来源:互联网 发布:js修改confirm的是否 编辑:程序博客网 时间:2024/06/05 06:54

对于001,1处理会出问题的情况,再所有的数字前面再加一个1,就变成1001和11,区分开来了,

itoa函数codefoeces上c++14才有



#include<iostream>#include<string.h>#include<stdio.h>#include<map>#include<string>#include<stdlib.h>using namespace std;char str[70000+10][10];char s[10];map<int,int> m;int n;void solve(char p[],int num){    for(int i=0;i<9;i++){        int v=1;        for(int j=i;j<9;j++){            v=v*10+p[j]-'0';            if(m[v]==0) m[v]=num;            else if(m[v]!=num) m[v]=-1;        }    }}void get_ans(char p[]){    int ans=0x7fffffff;    for(int i=0;i<9;i++){        int v=1;        for(int j=i;j<9;j++){            v=v*10+p[j]-'0';            if(m[v]!=0 && m[v]!=-1){                ans=min(ans,v);            }        }    }    itoa(ans,s,10);    printf("%s\n",s+1);}int main(){    scanf("%d",&n);    for(int i=1;i<=n;i++){        scanf("%s",str[i]);    }    m.clear();    for(int i=1;i<=n;i++){        solve(str[i],i);    }    for(int i=1;i<=n;i++){        get_ans(str[i]);    }}


阅读全文
0 0
原创粉丝点击