Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
Program hotrotinhoc_hoc24;
const fi='CAPSO.INP';
fo='CAPSO.OUT';
var a: array[1..100] of integer;
i,j,n,x,d: integer;
f: text;
procedure ip;
begin
assign(f,fi);
reset(f);
readln(f,n);
for i:=1 to n do read(f,a[i]);
readln(f);
read(f,x);
close(f);
end;
procedure out;
begin
assign(f,fo);
rewrite(f);
d:=0;
for i:=1 to n do
for j:=i to n do
if i+j=x then inc(d);
write(f,d);
close(f);
end;
begin
ip;
out;
end.
Bài 1:
const fi='robot.inp';
fo='robot.out';
var f1,f2:text;
n,i,t:integer;
a:array[1..10000]of integer;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n);
for i:=1 to n do
read(f1,a[i]);
t:=0;
for i:=1 to n do
begin
if a[i]=1 then t:=t+1
else t:=t-1;
end;
writeln(f2,t);
close(f1);
close(f2);
end.
Program hotrotinhoc;
const fi='cau2.inp';
fo='cau2.out';
var f: text;
s: ansistring;
i,n,d,max,min: integer;
a: array[1..1000] of string;
procedure ip;
begin
assign(f,fi);
reset(f);
read(f,s);
close(f);
end;
procedure out;
begin
assign(f,fo);
rewrite(f);
s:=s+' ';
while length(s)<>0 do
begin
inc(d);
min:=1001;
max:=0;
a[d]:=copy(s,1,pos(' ',s)-1);
delete(s,1, pos(' ',s));
end;
for i:=1 to d do
begin
if length(a[i])>max then max:=length(a[i]);
if length(a[i])<min then min:=length(a[i]);
end;
write(f,min,' ',max);
close(f);
end;
begin
ip;
out;
end.
Program HOC24;
const fi='Cau1.INP';
fo='Cau2.OUT';
var i,a,b,c,t,d: integer;
f: text;
function ucln(x,y: integer): integer;
var t: integer;
begin
while y<>0 do
begin
t:= x mod y;
x:=y;
y:=t;
end;
ucln:=x;
end;
procedure ip;
begin
assign(f,fi);
reset(f);
read(f,a,b,c);
close(f);
end;
procedure out;
begin
assign(f,fo);
rewrite(f);
for i:=b to c do
begin
if i mod a=0 then write(f,i,' ');
t:=t+i;
end;
writeln(f);
while t<>0 do
begin
t:=t div 10;
inc(d);
end;
writeln(f,d);
if ucln(a,b,c)=1 then write(f,1) else write(f,0);
close(f);
end;
begin
ip;
out;
end.
#include <iostream>
#include <map>
using namespace std;
int main() {
int n;
cin >> n;
map<int, int> count;
for (int i = 0; i < n; i++) {
int x;
cin >> x;
count[x]++;
}
int ans = 0;
for (auto p : count) {
int x = p.second;
ans += (x * (x - 1)) / 2;
}
cout << ans;
return 0;
}
Bạn gửi email cho mình để mình gửi đáp án của bài này nhé.
Bạn làm cho mình ở đây luôn đc không.Mình cảm ơn
#include<bits/stdc++.h>
#define FORn(i, n) for(int i=1; i<=(n); i++)
using namespace std;
int n, k, a[100005]={}, l=1, r=0;
bool kt(int x){
int dem=0;
FORn(i, n) dem+=a[i]/x;
return dem>=k;
}
int main(){
cin>>n>>k;
FORn(i, n){
cin>>a[i];
r=max(r, a[i]);
}
while(l<=r){
int mid=(l+r)/2;
if(kt(mid)) l=mid+1;
else r=mid-1;
}
cout<<l-1;
}
bạn nào dịch sang pascal giùm mk với :'(
:< giá như mình biết C++ thì có thể đọc được thuật toán của bạn và chuyển sang pascal rồi.
cũng tại chtr học của mình là pascal, chớ chuyên tin như mình học C++ cho nó thông dụng :)
năm ngoái mk cx có học pascal mà h chữ nó bay hết r :(((
Để em dịch cho :)
program wires;
uses crt;
var i,n,k,l,r,mid,dem:integer;
a:array[1..100005] of integer;
kt:boolean;
begin
clrscr;
l:=1; r:=0; dem:=0;
read(n); read(k);
for i:=1 to n do
begin
read(a[i]);
if (a[i]>r) then r:=a[i]
end;
while (l<=r) do
begin
mid:=(l+r) div 2;
for i:=1 to n do dem:=dem+(a[i] div mid);
if (dem>=k) then kt:=true;
if (kt=true) then l:=mid+1 else r:=mid-1;
end;
write(l-1);
readln
end.
Cái này mới đúng nè =))
program wires;
uses crt;
var i,n,k,l,r,mid,dem:integer;
a:array[1..100005] of integer;
kt:boolean;
begin
clrscr;
l:=1; r:=0; dem:=0;
read(n); read(k);
for i:=1 to n do
begin
read(a[i]);
if (a[i]>r) then r:=a[i]
end;
while (l<=r) do
begin
mid:=(l+r) div 2;
for i:=1 to n do dem:=dem+(a[i] div mid);
if (dem>=k) then kt:=true;
if (kt=true) then l:=mid+1 else begin kt:=false; r:=mid-1; end;
end;
write((l-1)/2:0:0); delay (5000);
readln
end.
bạn tính nếu chia k đoạn bằng nhau thì đoạn dây có thể lấy gt lớn nhất là bao nhiêu bằng cách lấy sum/k;
rồi duyệt ngược x từ sum/k -> 1 , với mỗi giá trị kiểm tra xem có thỏa manx chia đủ k dây không,nếu thỏa mãn thì break rồi cout << x thôi