Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions 641e.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
#include<bits/stdc++.h>
using namespace std;

typedef pair<long long int , long long int> P;
#define mod 1000000007
#define all(container) container.begin(),container.end()
#define tr(container,it) for(typeof(container.begin()) it = container.begin();it!=container.end();it++)
#define sz(a) int((a).size())
#define pb push_back
#define CLR(arr) memset(arr, 0, sizeof(arr))
#define mk make_pair
#define present(container,x) ((container).find(x) != (container).end())
#define inf 123456789123456
#define fs first
#define sc second
#define ll long long int
#define fr(it,st,en) for(it=st;it<en;it++)
#define NL cout<<"\n";
#define INP ios_base::sync_with_stdio(false);cin.tie(NULL);
#define what_is(x) cout << #x << " = " << x << endl
// ll powmod(ll a,ll b) {ll res=1;a%=mod; assert(b>=0); for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;}
// ll gcd(ll a, ll b) { return b == 0 ? a : gcd(b, a % b); }
// ll lcm(ll a, ll b) { return a * (b / gcd(a, b)); }
#define N 234567

// bool compare(P a, P b){ return ((a.first) > (b.first) ); }
//ll ord[123456],a[123456],f[123456],p[123456],s[123456];
// // ll find (ll u ){
// // if(p[u]!=u)
// // return(find(p[u]));
// // return u;
// // }
// void merge (ll u, ll v){
// ll y = find(u);
// ll yy = find(v);
// p[yy] = y;
// s[y] = s[yy] + s[y];
// }
//std::priority_queue<P, std::vector< P >, decltype(&compare)> pq(&compare);

ll m,mx=-1,i,j,n,tmp,t,val,a,ans,k,cnt = 0 ;
// ll deg[N],vis[N],v[N],u[N];
// vector< set < ll> > g(210);
// struct sort_pred {
// bool operator()(const ll &left, const ll &right) {

// if(deg[left]%2 != deg[right]%2){
// if(deg[left]%2==1)
// return false;
// else
// return true;
// }
// return ((deg[left]%2 == deg[right]%2 ) && (deg[left] > deg[right]));
// } };


map< ll , set < ll > > amp,rmp;
int main(){
INP
freopen("inp.txt","r",stdin);
cin>>n;
fr(i,0,n){
cin>>a>>t>>val;
if(a==1){
amp[val].insert(t);
}
else if(a==2){
rmp[val].insert(t);
}
else{
if(amp.find(val) == amp.end()){
cout<<"0\n";
}
else{
if(rmp.find(val) == rmp.end()){
cout<<amp[val].lower_bound(t) - amp[val].begin()<<endl;
}
else{
cout << (amp[val].lower_bound(t) - amp[val].begin() ) - (rmp[val].lower_bound(t) - rmp[val].begin() ) << endl;
}



}
}
}
return 0;
}

131 changes: 131 additions & 0 deletions 659F.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
// avvinci
#include<bits/stdc++.h>
using namespace std;

typedef pair<long long int , long long int> P;
#define mod 1000000007
#define all(container) container.begin(),container.end()
#define tr(container,it) for(typeof(container.begin()) it = container.begin();it!=container.end();it++)
#define pb push_back
#define CLR(arr) memset(arr, 0, sizeof(arr))
#define mk make_pair
#define present(container,x) ((container).find(x) != (container).end())
#define inf 123456789123456
#define fs first
#define sc second
#define ll long long int
#define fr(it,st,en) for(it=st;it<en;it++)
#define INP ios_base::sync_with_stdio(false);cin.tie(NULL);
#define ws(x) cout << #x << " = " << x << endl
#define N 1234

ll b,cnt, m,n,tmp,q,cn,i,j,k,ans,w,w1 ,pos,val,tmp1,f = 0,sz, mrk[N][N],a[N][N],vis[N][N],vis2[N][N];
struct sort_pred {
bool operator()(const pair< P , ll > &left, const pair< P , ll > &right) {

return left.sc < right.sc ;
} };

// struct cmp
// {
// bool operator()(pair< P , ll > a, pair< P , ll > b)
// {

// return a.sc < b.sc;
// }
// };

vector< pair< P , ll > > v,v1,v2;

void dfs( int x ,int y){
if(x< 0 || y < 0 || x >=n || y >= m ) return ;
if(vis[x][y] || a[x][y] == 0 ) return ;
vis[x][y] = 1;
v.pb( mk ( mk(x,y) , a[x][y]) );
dfs(x+1,y);
dfs(x-1,y);
dfs(x,y+1);
dfs(x,y-1);
}

void dfs2( int x , int y , ll yy){
if(x< 0 || y < 0 || x >=n || y >= m ) return ;
if(vis2[x][y] || a[x][y] < yy ) return ;
vis2[x][y] = 1;
v2.pb( mk ( mk(x,y) , a[x][y]) );
dfs2(x+1,y,yy);
dfs2(x-1,y,yy);
dfs2(x,y+1,yy);
dfs2(x,y-1,yy);
}
int main(){
INP
if (fopen("inp.txt", "r")) {
freopen("myfile.txt","w",stdout);
freopen("inp.txt", "r", stdin);
}

cin>>n>>m>>k;
fr(i,0,n){
fr(j,0,m){
cin>>a[i][j];
if(a[i][j]!=0)
v1.pb(mk( mk(i,j) , a[i][j]));
}
}

sort(all(v1),sort_pred()) ;

fr(w1,0,v1.size()){
i = v1[w1].fs.fs;
j = v1[w1].fs.sc;
//ws(v1[w1].sc);
if(!vis[i][j]){
dfs(i,j);
sort(all(v),sort_pred()) ;
fr(w,0,v.size()){

if(v[w].sc * (v.size() - w ) >= k && k%v[w].sc==0){
// ws(v[w].fs.fs);
// ws(v[w].fs.sc);
// ws(v[w].sc);
v2.clear();
dfs2(v[w].fs.fs, v[w].fs.sc,v[w].sc);
// ws(v2.size());
if(v2.size()*v[w].sc < k) continue;
f= 1;
val = v[w].sc;
ll it =0;
while(it < v2.size()){
mrk[v2[it].fs.fs][v2[it].fs.sc] = 1;

it++;
if(it * v[w].sc == k ) break;
}
w = v.size();
}
//a[i][j] =0;
}
v.clear();
}
if(f) break;
}


if(!f){
cout<<"NO";
}
else{
cout<<"YES\n";
fr(i,0,n){
fr(j,0,m){
if(mrk[i][j])
cout<<val<<" ";
else
cout<<"0 ";
}
cout<<"\n";
}
}
return 0;
}
68 changes: 68 additions & 0 deletions 659d.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
// avvinci
#include<bits/stdc++.h>
using namespace std;

typedef pair<long long int , long long int> P;
#define mod 1000000007
#define all(container) container.begin(),container.end()
#define tr(container,it) for(typeof(container.begin()) it = container.begin();it!=container.end();it++)
#define pb push_back
#define CLR(arr) memset(arr, 0, sizeof(arr))
#define mk make_pair
#define present(container,x) ((container).find(x) != (container).end())
#define inf 123456789123456
#define fs first
#define sc second
#define ll long long int
#define fr(it,st,en) for(it=st;it<en;it++)
#define INP ios_base::sync_with_stdio(false);cin.tie(NULL);
#define ws(x) cout << #x << " = " << x << endl
#define N 123456

ll b,cnt, m,n,tmp,q,cn,i,j,k,ans,pos,val,tmp1,f = 0,a;

int main(){
INP
if (fopen("inp.txt", "r")) {
freopen("myfile.txt","w",stdout);
freopen("inp.txt", "r", stdin);
}

cin>>m;
int dir = 1 ;
int oa ,ob,sa,sb;
cin>>sa>>sb;
cin>>oa>>ob;

fr(i,0,m-1){
cin>>a>>b;
if(a - oa == 0){
if(b > ob){
if(dir == 2)
ans++;
dir = 1;
}
if(b < ob){
if(dir == 4)
ans++;
dir =3;
}
}
else{
if(a > oa){
if(dir == 3) ans++;
dir =2;
}
else{
if(dir ==1 ) ans++;
dir =4;
}
}

oa =a;
ob =b;
}
cout<<ans;

return 0;
}
68 changes: 68 additions & 0 deletions 659e.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
// avvinci
#include<bits/stdc++.h>
using namespace std;

typedef pair<long long int , long long int> P;
#define mod 1000000007
#define all(container) container.begin(),container.end()
#define tr(container,it) for(typeof(container.begin()) it = container.begin();it!=container.end();it++)
#define pb push_back
#define CLR(arr) memset(arr, 0, sizeof(arr))
#define mk make_pair
#define present(container,x) ((container).find(x) != (container).end())
#define inf 123456789123456
#define fs first
#define sc second
#define ll long long int
#define fr(it,st,en) for(it=st;it<en;it++)
#define INP ios_base::sync_with_stdio(false);cin.tie(NULL);
#define ws(x) cout << #x << " = " << x << endl
#define N 123456

ll b,cnt, m,n,tmp,q,cn,i,j,k,ans ,pos,val,tmp1,f = 0,sz, vis[N];
vector< vector < ll > > v(N);

void dfs( int ver ,int par){
if(vis[ver] == 1) {
f= 1;
return ;
}
vis[ver] = 1;
sz++;
for(auto & it: v[ver]){
if(it == par) continue;
dfs(it,ver);
}

}
int main(){
INP
if (fopen("inp.txt", "r")) {
freopen("myfile.txt","w",stdout);
freopen("inp.txt", "r", stdin);
}

cin>>n>>m;
fr(i,0,m){
cin>>tmp>>tmp1;
tmp--; tmp1--;
v[tmp].pb(tmp1);
v[tmp1].pb(tmp);
}

fr(i,0,n){
if(!vis[i]){
dfs(i,-1);
//ws(sz);
//ws(f);
if( !f || sz==1 ){
ans++;
}
f= 0 ;
sz = 0;
}
}
cout<<ans;

return 0;
}
Loading