通话记录 oj130

来源:互联网 发布:思想过知乎 编辑:程序博客网 时间:2024/05/12 20:47

通话记录

发布时间: 2017年5月25日 19:57   最后更新: 2017年5月26日 00:43   时间限制: 1000ms   内存限制: 128M

使用3个队列,分别保留手机上最近10个,(0)未接来电、(1)已接来电、(2)已拨电话。

全部通话记录,每行一条记录。 每条记录包含两个数字,第一个数代表记录类型,第二个数代表手机号码。

分3列输出未接来电、已接来电、已拨电话。 列之间用空格分割,后接电话在最先输出,不足10条用0占位。

 复制
218270477699110149800116019906559817116209018105116804212234219289130583117982711123010897630486111860787674015192777554
15192777554 11860787674 1928913058310897630486 17982711123 1827047769919906559817 16804212234 00 16209018105 00 10149800116 00 0 00 0 00 0 00 0 00 0 0
#include <string>#include <iostream>#include <vector>using namespace std;int main(){vector<string> iter_a, iter_b, iter_c;int n;string a;while (cin >> n >> a) {if (n == 0)iter_a.push_back(a);else if (n ==1)iter_b.push_back(a);elseiter_c.push_back(a);}int s1 = iter_a.size(), s2 = iter_b.size(), s3 = iter_c.size();int max = s1 > s2 ? s1 : s2;int tmp = s2 > s3 ? s2 : s3;max = max > tmp ? max : tmp;string stra[1010],strb[1010],strc[1010];vector<string>::iterator pa = iter_a.begin(), pb = iter_b.begin(), pc = iter_c.begin();int k = 0;for (int i = s1 - 1; i >= 0; i--)stra[i] = pa[k++];k = 0;for (int i = s2 - 1; i >= 0; i--)strb[i] = pb[k++];k = 0;for (int i = s3 - 1; i >= 0; i--)strc[i] = pc[k++];for (int i = 0; i <max; i++){if (s1){cout << stra[i]<<" ";s1--;}elsecout << 0 << " ";if (s2){cout << strb[i] << " ";s2--;}elsecout << 0 << " ";if (s3){cout << strc[i];s3--;}elsecout <<"0";cout << endl;}if (max < 10){for (int i = 0; i < 10 - max; i++)cout << "0 0 0\n";}return 0;}


原创粉丝点击