Pagini recente » Cod sursa (job #621491) | Cod sursa (job #2161944) | Cod sursa (job #3248099) | Cod sursa (job #1138335) | Cod sursa (job #880717)
Cod sursa(job #880717)
/*#include <fstream>
#include <iostream>
using namespace std;
int main()
{
long n,k,i,m,p,p1;
ifstream f("farfurii.in");
ofstream g("farfurii.out");
f>>n>>k;
for(p=1;p<n;p*=2)
{
p1=p;
for(m=0;p1>0;p1/=2)
{
if(m+p1<=n&&(m+p1)*(m+p1-1)<=2*k) m+=p1;
}
}
k-=m*(m-1)/2;
if(!k)
{
for(i=1;i<=n-m;i++) g<<i<<" ";
for(i=n;i>n-m;i--) g<<i<<" ";
g<<'\n';
}
else
{
k=m-k;
m++;
for(i=1;i<=n-m;i++)
{
g<<i<<" ";
}
g<<n-k<<" ";
for(i=n;i>n-k;i--) g<<i<<" ";
for(i=n-k-1;i>n-m;i--) g<<i<<" ";
g<<'\n';
}
return 0;
}
*/
/*
#include <fstream>
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char ret[1001];
int i,j,n,cant=0,timp=0;
ifstream f("farfurii.in"); //reteta
ofstream g("farfurii.out");
f.get(ret,1000);
n=strlen(ret);
for(i=0;i<n;i++)
{
if(ret[i]==')')
{
cant=0;
i++;
while(ret[i]==' ') i++;
while(ret[i]>='0'&&ret[i]<='9')
{
cant=cant*10+ret[i]-'0';
i++;
}
cout<<cant<<"\n";
timp+=cant;
}
}
g<<timp;
cout<<timp;
}
*/
/*
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
int n,p[10],i,j,nr;
long k,sol=0,t;
ifstream f("farfurii.in");//prime1
ofstream g("farfurii.out");
f>>n;
for(i=0;i<n;i++)
{
f>>p[i];
}
f>>k;
for(i=1;i<(1<<n);i++)
{
for(t=k,nr=j=0;j<n;j++)
{
if(1&(1<<j))
{
t/=(long) p[j];
nr++;
}
}
if(nr%2==1) sol+=t;
else sol-=t;
}
g<<sol;
return 0;
}
*/
/*
#include<fstream>
#include <iostream>
#include<string.h>
using namespace std;
#define M 505
#define MOD 666013
#define lit 30
ifstream f("farfurii.in");//subsir
ofstream g("farfurii.out");
int n, m, c[M][M], d[M][M], ia[M][lit], ib[M][lit];
char a[M], b[M];
int maxim(int x, int y)
{
if(x>y) return x;
else return y;
}
void afis(int a[][M],int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
cout<<a[i][j]<<" ";
cout<<"\n";
}
}
int main()
{
f >>a>>b;
n = strlen(a);
m = strlen(b);
a[n++] = 0;
b[m++] = 0;
for(int i = 0; i < n; i++)
{
for(int j = 0; j < lit; j++)
ia[i][j] = ia[i - 1][j];
ia[i][a[i] - 'a'] = i;
}
for(int i = 0; i < m; i++)
{
for(int j = 0; j < lit; j++)
ib[i][j] = ib[i - 1][j];
ib[i][b[i] - 'a'] = i;
}
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++)
if(a[i-1] == b[j-1])
c[i][j] = c[i - 1][j - 1] + 1;
else
c[i][j] = maxim(c[i - 1][j], c[i][j - 1]);
afis(c,6);
d[0][0] = 1;
for(int i = 0; i < n; i++)
for(int j = 0; j < m; j++)
{
if(c[i][j] == 1)
{
d[i][j] = 1;
}
for(int k = 0 ;k < lit; k++)
{
int ii = ia[i - 1][k];
int jj = ib[j - 1][k];
if(c[i][j] == c[ii][jj] + 1)
{
d[i][j] += d[ii][jj];
d[i][j] %= MOD;
}
}
}
g << d[n][m];
return 0;
}
*/
#include<fstream>
using namespace std;
int a[300][300],i,j,n,k;
int main()
{
ifstream f("lacate.in");
ofstream g("lacate.out");
f>>n;
g<<n*(n-1)/2 <<" "<<n-1;
g<<'\n';
k=0;
for (i=1;i<=n;i++)
for (j=i;j<n;j++)
{
k++;
a[i][j]=k;
a[j+1][i]=k;
}
for (i=1;i<=n;i++)
{
for (j=1;j<n;j++)
g << a[i][j] << ' ';
g << "\n";
}
return 0;
}