2017-12-1 最小差值
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
const int N = 1010;
int a[N];
int n;
int main()
{
cin >> n;
int mins = 1e9;
for(int i = 0; i < n; i++) cin >> a[i];
for(int i = 0; i < n; i++)
{
for(int j = i + 1; j < n; j++)
{
mins = min(mins, abs(a[j] - a[i]));
}
}
cout << mins << endl;
}
2017-12-2 游戏
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
const int N = 1010;
int n, k;
bool st[N];
int main()
{
cin >> n >> k;
if (n == 1)
{
cout << 1 << endl;
return 0;
}
int size = n;
int count = 0;
for (int i = 1; i <= n + 1; i++)
{
if (i == n + 1)
i = 1;
if (!st[i])
{
count++;
if (count % k == 0 || count % 10 == k)
{
st[i] = true;
size--;
if (size == 1)
break;
}
}
}
for (int i = 1; i <= n; i++)
{
if (!st[i])
{
cout << i << endl;
break;
}
}
return 0;
}
2017-9-1
#include<iostream>
using namespace std;
int main()
{
int x;
cin >> x;
int ans = 0;
while (x > 0)
{
if (x >= 50)
{
ans += 7;
x = x - 50;
}
else if (x >= 30)
{
ans += 4;
x = x - 30;
}
else
{
ans += x / 10;
x = 0;
}
}
cout << ans;
return 0;
}
2017-9-2
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 1010;
int n, k;
int classroom[N];
struct key
{
int num;
int status;
int time;
bool operator< (const key& t) const
{
if (time != t.time) return time < t.time;
if (status != t.status) return status < t.status;
return num < t.num;
}
}a[N * 2];
int find(int num)
{
for (int i = 1; i <= n; i++)
{
if (classroom[i] == num)
return i;
}
}
int main()
{
cin >> n >> k;
for (int i = 1; i <= n; i++)
classroom[i] = i;
int num, start, time;
int cnt = 0;
for (int i = 0; i < k; i++)
{
scanf("%d%d%d", &num, &start, &time);
a[cnt++] = { num, 1, start }; //取
a[cnt++] = { num, 0, start + time }; //放
}
sort(a, a + cnt);
for (int i = 0; i < cnt; i++)
{
if (a[i].status == 1)
{
classroom[find(a[i].num)] = -1;
}
else
{
for (int j = 1; j <= n; j++)
{
if (classroom[j] == -1)
{
classroom[j] = a[i].num;
break;
}
}
}
}
for (int i = 1; i <= n; i++)
if (i == 1) cout << classroom[i];
else cout << " " << classroom[i];
cout << endl;
}
2017-3-1
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
const int N = 1010;
int n, k;
int a[N];
int main()
{
cin >> n >> k;
for (int i = 1; i <= n; i++)
cin >> a[i];
int sum = 0, res = 0;
int i = 1;
while (i <= n)
{
sum += a[i];
if (sum >= k || i == n)
{
sum = 0;
res++;
}
i++;
}
cout << res << endl;
}
2017-3-2
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int n, k;
const int N = 1010;
int a[N];
int find(int x)
{
for (int i = 1; i <= n; i++)
{
if (a[i] == x)
return i;
}
}
void move1(int x, int y)
{
for (int i = x + 1; i <= x + y; i++)
{
swap(a[i], a[i - 1]);
}
}
void move2(int x, int y)
{
for (int i = x - 1; i >= x - y; i--)
{
swap(a[i], a[i + 1]);
}
}
int main()
{
cin >> n >> k;
for (int i = 1; i <= n; i++) a[i] = i;
int x, y;
while (k--)
{
cin >> x >> y;
if (y > 0)
move1(find(x), y);
else
move2(find(x), -y);
}
for (int i = 1; i <= n; i++)
if (i == 1) cout << a[i];
else cout << " " << a[i];
cout << endl;
}