Академический Документы
Профессиональный Документы
Культура Документы
ifstream f("hashuri.in");
ofstream g("hashuri.out");
int n;
vector <int> Hash[MOD]; HASH
void dostuff(){
f >> n;
for (;n--;){
int op, val;
f >> op >> val;
if (op == 1){
op1(val);
} else {
if (op == 2){
op2(val);
} else {
op3(val);
}
}
}
}
int main()
{
ios_base::sync_with_stdio(false);
dostuff();
return 0;
}
ifstream f("lgput.in");
ofstream g("lgput.out");
void dostuff(){
f >> x >> n; //x^n
}
int main()
{
dostuff();
g << mypow (x, n);
return 0;
}
//dijkstra
#include <bits/stdc++.h>
#define INF 99999999
#define MAX 51000
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
void dijkstra(){
priority_queue<pair <int, int>, vector < pair < int, int > >, greater < pair <
int,int > > > pq;
pq.push({0,1});
while (!pq.empty()){
int node = pq.top().second;
int value = pq.top().first;
pq.pop();
void dostuff(){
f >> n >> m;
for (int i = 1; i <= m; i++){
int x, y, d;
f >> x >> y >> d;
G[x].push_back({y, d});
}
}
void domorestuff(){
for (int i = 2; i <= n; i++){
D[i] = INF;
}
dijkstra();
for (int i = 2; i <= n; i++){
if (D[i] == INF){
g << "0 ";
} else {
g << D[i] << ' ';
}
}
}
int main()
{
dostuff();
domorestuff();
return 0;
}
//bellman ford
#include <bits/stdc++.h>
#define MAX 50100
#define INF 1e9
using namespace std; BELLMAN-FORD
ifstream f("bellmanford.in");
ofstream g("bellmanford.out");
void dostuff(){
f >> n >> m;
for (int i = 1; i <= m; i++){
int x, y, c;
f >> x >> y >> c;
G[x].push_back({y,c});
}
}
int bf(){
int nod, nxt, cst;
for (int i = 2; i <= n; i++){
d[i] = INF;
}
q.push(1);
s[1] = 1;
while(!q.empty()){
nod = q.front();
s[nod] = 0;
q.pop();
for(int i = 0; i < G[nod].size(); i++)
{
nxt = G[nod][i].first;
cst = G[nod][i].second;
if(cst + d[nod] < d[nxt]){
d[nxt] = d[nod] + cst;
if(s[nxt] == 0){
q.push(nxt);
s[nxt] = 1;
}
if(++cnt[nxt] > n){
return 0;
}
}
}
}
return 1;
}
int main()
{
dostuff();
if (bf()){
for (int i = 2; i <= n; i++){
g << d[i] << ' ';
}
} else {
g << "Ciclu negativ!";
}
return 0;
}
//lca
#include <bits/stdc++.h>
#define MAX 100100
ifstream f("lca.in");
ofstream g("lca.out");
int main()
{
ios_base::sync_with_stdio(false);
f >> n >> m;
lvl[1] = 1;
for (int i = 1; i <= n-1; i++){
int x;
f >> x;
t[i+1] = x;
lvl[i+1] = lvl[x] + 1;
}
while (m--){
int a, b;
f >> a >> b;
facemlca (a,b);
}
return 0;
}
//roy floyd
#include <bits/stdc++.h>
#define MAX 110
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int n, a[MAX][MAX];
int main()
{
f >> n;
for (int i = 1; i <= n; i++){
for (int j = 1; j <= n; j++){
f >> a[i][j];
}
}
royfloyd();
for (int i = 1; i <= n; i++){
for (int j = 1; j <= n; j++){
g << a[i][j] << ' ';
}
g << '\n';
}
return 0;
}
//aib
#include <bits/stdc++.h>
#define MAX 15015
ifstream f("datorii.in");
ofstream g("datorii.out");
int main()
{
f >> n >> m;
for (int i = 1; i <= n; i++){
f >> v[i];
}
for (int i = 1; i <= n; i++){
adauga (i, v[i]);
}
for (;m--;){
int op, left, right;
f >> op >> left >> right;
if (op == 0){
adauga(left, -right);
} else {
g << suma(right) - suma(left - 1) << '\n';
}
}
return 0;
}
//rmq
"Care este elementul minim din intervalul [x,y]?"
#include <bits/stdc++.h>
#define MAX 100010
ifstream f("rmq.in");
ofstream g("rmq.out");
int n, m;
int v[MAX];
int rmq[20][MAX];
int lg[MAX];
void dostuff(){
f>>n>>m;
for (int i = 1; i <= n; i++){
f >> v[i];
}
lg[2] = 1;
for (int i = 3; i<=n; i++){
lg[i] = lg[i/2]+1;
}
}
void domorestuff(){
for (int i = 1; i <= n; i++){
rmq[0][i]=v[i];
}
for (int i = 1, j, p = 2; p <= n; i++, p *= 2){
for (j = 1; j+p-1 <= n; j++){
rmq[i][j]=min(rmq[i-1][j], rmq[i-1][j+p/2]);
}
}
}
void doevenmorestuff(){
int x, y, p;
while (m--){
f >> x >> y;
p = lg[y-x+1];
g << min(rmq[p][x], rmq[p][y-(1<<p)+1]) << "\n";
}
}
int main()
{
ios_base::sync_with_stdio(false);
dostuff();
domorestuff();
doevenmorestuff();
return 0;
}
//bfs
#include <bits/stdc++.h>
#define NMAX 100100
#define MMAX 1000100
ifstream f("bfs.in");
ofstream g("bfs.out");
int main()
{
ios_base::sync_with_stdio(false);
int i, x, y;
f>>n>>m>>s;
for (i=1; i<=m; i++){
f>>x>>y;
v[x].push_back(y);
}
viz[s]=1;
bfs(s);
for(i=1; i<=n; i++){
if(viz[i]==0) g<<"-1 ";
else g<<sol[i]<<" ";
}
return 0;
}
int main()
{
cin>>n>>p;
for (int i=1; i<=n; i++){
cin>>a[i];
}
bkt();
return 0;
}
int v[6000001];
int main()
{
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
max1=v[1];
min1=v[1];
p=1;
min1= v[i];
p=i;
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(b[i]==c[j])
a[i][j]=a[i-1][j-1]+1;
else
a[i][j]=max(a[i-1][j] , a[i][j-1]);
}
}
i=n;
j=m;
while(a[i][j])
{
while(a[i][j]==a[i-1][j])
i--;
while(a[i][j]==a[i][j-1])
j--;
x++;
sub[x]=b[i];
i--;
j--;
}
fout<<a[n][m]<<" ";
fout<<endl;
for(i=x;i>=1;i--)
fout<<sub[i]<<" ";
return 0;
}
//rucsac
#include <bits/stdc++.h>
#define maxn 5010
#define maxg 10010
ifstream f("rucsac.in");
ofstream gout("rucsac.out");
int main()
{
int n, g;
f>>n>>g;
for (int i=1; i<=n; i++){
f>>w[i]>>p[i];
}
optim[0]=0;
int sol=0;
for (int i=1; i<=n; i++){
for (int j=g-w[i]; j>=0; j--){
if (optim[j+w[i]]<optim[j]+p[i]){
optim[j+w[i]]=optim[j]+p[i];
if(optim[j+w[i]]>sol)
sol=optim[j+w[i]];
}
}
}
gout<<sol;
return 0;
}
//catalan
#include <bits/stdc++.h>
int n;
int main()
{
cin >> n;
cout << catalanare(n);
return 0;
}