POJ——1016Parencodings(模擬)
阿新 • • 發佈:2018-11-16
#include <cstdio> #include <cmath> #include<vector> #include<cstring> #include<algorithm> #include<cmath> #include<stack> #include<string> #include<iostream> #include<set> #include<vector> using namespace std; int main() { int t; scanf("%d",&t); while(t--) { int n; scanf("%d",&n); vector<char>vec; vec.clear(); int i=0; int cnt=n; while(n--) { int x; scanf("%d",&x); while(i<x) { vec.push_back('('); i++; } vec.push_back(')'); } int len=vec.size(); int vis[len+10]; memset(vis,0,sizeof(vis)); int sum=0; for(int j=0;j<len;j++) { if(vec[j]==')') { sum++; for(int k=j-1;k>=0;k--) { if(vec[k]=='('&&vis[k]==0) { vis[k]=1; printf("%d",(j-k+1)/2); if(sum==cnt) printf("\n"); else printf(" "); break; } } } } } return 0; }