Submission #13095279


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

typedef long long int ll;
typedef vector<int> vi;			typedef vector<ll> vl;
typedef vector<vi> vvi; 		typedef vector<vl> vvl;
typedef pair<int, int> 	pii;	typedef pair<ll, ll> pll;
typedef vector<pii> vii; 		typedef vector<pll> vll;
typedef map<int,int> mii;
typedef vector<char> vc;
typedef vector<bool> vb;
#define endl '\n'
#define forn(i,n) for(int i=0;i<n;i++)
#define rforn(i,n) for(int i=n-1;i>=0;i--)
#define forne(i,n) for(int i=1;i<=n;i++)
#define rforne(i,n) for(int i=n;i>=1;i--)
#define forse(i,s,e) for(int i=s;i<e;i++)
#define rforse(i,s,e) for(int i=e-1;i>=s;i--)
#define all(x) x.begin(),x.end()
#define sz(x) (ll)x.size()
#define MOD 1000000007
#define F first
#define S second
#define pb push_back
#define in insert
#define mp(a, b) make_pair(a, b)
#define fill(a,x) memset(a,x,sizeof a);
#define trav(a,x) for(auto &a:x)
#define min3(a, b, c) min(min(a, b), c)
#define min4(a, b, c, d) min(min(a, b), min(c, d))
#define max3(a, b, c) max(max(a, b), c)
#define max4(a, b, c, d) max(max(a, b), max(c, d))
#define INF INT_MAX
#ifdef KARAN
	#include "../../trace.h"
#else
    #define trace(args...)
#endif

ll modpow(ll a, ll b, ll m = MOD){a %= m; ll res = 1; 
	while (b) {if (b & 1)res = (res * a) % m; a = (a * a) % m; b >>= 1;} return res;}
ll bpow(ll a, ll b){ll res = 1; while (b) {if (b & 1)res = res * a; a = a * a; b >>= 1;} return res;}
ll modinv(ll a, ll m = MOD) {return modpow(a, m - 2, m);}
void graph(vvi &adj, int m) {int x, y; forn(i, m){cin>>x>>y; adj[--x].pb(--y); adj[y].pb(x);}}

bool compare(pii &a, pii &b){
	if(a.F<b.F)
		return true;
	else if(a.F>b.F)
		return false;
	else
		return a.S>b.S;
}

bool solve(){
	int n;
	cin>>n;
	vii pos, neg;
	int total_val = 0;
	forn(i, n){
		string s;
		cin>>s;
		int curr = 0, minim = 0;
		for(auto c: s){
			if(c=='(') curr++; else curr--;
			minim = min(curr, minim);
		}
		if(minim>=0)
			total_val += curr;
		else if(curr>=0)
			pos.pb(mp(minim, curr));
		else
			neg.pb(mp(minim, curr));
	}
	sort(all(pos), greater<pii>());
	sort(all(neg), compare);
	// trace(pos);
	// trace(neg);
	// trace(total_val);
	int i = 0;
	while(i<pos.size()&&total_val+pos[i].F>=0){
		total_val += pos[i].S; i++;
	}
	if(i!=pos.size())
		return false;
	i = 0;
	while(i<neg.size()&&total_val+neg[i].F>=0){
		total_val += neg[i].S; i++;
	}
	if(i!=neg.size()||total_val!=0)
		return false;
	return true;
}

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	#ifdef KARAN
		freopen("inp.txt", "r", stdin);
    	freopen("out.txt", "w", stdout);
    	freopen("err.txt", "w", stderr);
	#endif
	int t=1;
	while(t--)
		if(solve()) cout<<"Yes"<<endl; else cout<<"No"<<endl;
}

Submission Info

Submission Time
Task F - Bracket Sequencing
User karanagarwalla
Language C++ (GCC 9.2.1)
Score 0
Code Size 2805 Byte
Status WA
Exec Time 82 ms
Memory 7692 KiB

Compile Error

./Main.cpp: In function ‘bool solve()’:
./Main.cpp:81:9: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<std::pair<int, int> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   81 |  while(i<pos.size()&&total_val+pos[i].F>=0){
      |        ~^~~~~~~~~~~
./Main.cpp:84:6: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<std::pair<int, int> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   84 |  if(i!=pos.size())
      |     ~^~~~~~~~~~~~
./Main.cpp:87:9: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<std::pair<int, int> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   87 |  while(i<neg.size()&&total_val+neg[i].F>=0){
      |        ~^~~~~~~~~~~
./Main.cpp:90:6: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<std::pair<int, int> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   90 |  if(i!=neg.size()||total_val!=0)
      |     ~^~~~~~~~~~~~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 600
Status
AC × 4
AC × 20
WA × 12
Set Name Test Cases
Sample sample_01, sample_02, sample_03, sample_04
All random_01, random_02, random_03, random_04, random_05, random_06, random_07, random_08, random_09, random_10, random_11, random_12, random_13, random_21, random_22, random_23, random_31, random_32, random_33, random_41, random_42, random_43, random_51, random_52, random_53, random_61, random_62, random_63, sample_01, sample_02, sample_03, sample_04
Case Name Status Exec Time Memory
random_01 AC 34 ms 4892 KiB
random_02 AC 69 ms 7692 KiB
random_03 AC 46 ms 6124 KiB
random_04 AC 78 ms 7324 KiB
random_05 AC 82 ms 7412 KiB
random_06 AC 27 ms 3516 KiB
random_07 AC 14 ms 3556 KiB
random_08 AC 6 ms 3592 KiB
random_09 AC 9 ms 3620 KiB
random_10 AC 29 ms 3608 KiB
random_11 WA 3 ms 3616 KiB
random_12 WA 2 ms 3616 KiB
random_13 WA 2 ms 3520 KiB
random_21 WA 2 ms 3556 KiB
random_22 WA 4 ms 3568 KiB
random_23 WA 2 ms 3636 KiB
random_31 WA 2 ms 3580 KiB
random_32 WA 2 ms 3636 KiB
random_33 WA 2 ms 3524 KiB
random_41 WA 2 ms 3460 KiB
random_42 WA 2 ms 3636 KiB
random_43 WA 2 ms 3600 KiB
random_51 AC 2 ms 3616 KiB
random_52 AC 2 ms 3524 KiB
random_53 AC 2 ms 3520 KiB
random_61 AC 21 ms 4052 KiB
random_62 AC 27 ms 5100 KiB
random_63 AC 35 ms 5284 KiB
sample_01 AC 2 ms 3632 KiB
sample_02 AC 2 ms 3592 KiB
sample_03 AC 2 ms 3556 KiB
sample_04 AC 2 ms 3644 KiB