Codeforces Round #249 (Div. 2)C. Cardiogram

Note

Due to the technical reasons the answers for the samples cannot be copied from the statement. We’ve attached two text documents with the answers below.

有些坑。。。

注意每行要填满,最大的x个字符

就是可能要用空格填坑

这次大概用了一个小时才有思路,

就是维护一个堆,画图

中途写好之后发现不能把/跟\同样处理

之后又发现每行还要填坑。。。

#include<map>#include<string>#include<cstring>#include<cstdio>#include<cstdlib>#include<cmath>#include<queue>#include<vector>#include<iostream>#include<algorithm>#include<bitset>#include<climits>#include<list>#include<iomanip>#include<stack>#include<set>using namespace std;struct st{int x,y;int flag;st(){}st(int x,int y,int flag){this->x=x;this->y=y;this->flag=flag;}bool operator <(st one)const{if(y!=one.y)return y<one.y;return x>one.x;}};int main(){int n;cin>>n;int x=0,y=0;priority_queue<st>qq;set<st>vis;vis.insert(st(x,y,1));for(int i=0;i<n;i++){int t;cin>>t;x+=t;if(i%2==0){y+=t;if(i!=n-1)qq.push(st(x,y,1));elseqq.push(st(x,y,3));}else{y-=t;vis.insert(st(x,y,1));}}int px=0,py=qq.top().y;while(qq.size()){st t=qq.top();qq.pop();if(vis.count(st(t.x,t.y,1)))continue;if(t.y!=py){printf("%*s\n",x-px,"");px=0;py=t.y;}if(t.flag==0){printf("%*c",t.x-px,'/');px=t.x;qq.push(st(t.x-1,t.y-1,0));}else if(t.flag==2){printf("%*c",t.x-px+1,92);px=t.x+1;qq.push(st(t.x+1,t.y-1,2));}else{printf("%*c",t.x-px,'/');px=t.x;qq.push(st(t.x-1,t.y-1,0));if(t.flag!=3){putchar(92);px=t.x+1;qq.push(st(t.x+1,t.y-1,2));}}}printf("%*s\n",x-px,"");}

,生活比你想象的要容易得多,只要学会接受那些不可接受的,

Codeforces Round #249 (Div. 2)C. Cardiogram

相关文章:

你感兴趣的文章:

标签云: