data b;
input city$ sa$ lo;
cards;
大连 f 7
大连 m 13
大连 f 19
大连 m 25
青岛 m 8
青岛 f 14
青岛 m 20
青岛 f 26
上海 f 3
上海 m 9
上海 f 15
上海 m 21
深圳 m 5
深圳 f 11
深圳 m 17
深圳 f 23
天津 m 4
天津 f 10
天津 m 16
天津 f 22
珠海 f 6
珠海 m 12
珠海 f 18
珠海 m 24
;
data _null_;
if _n_ = 1 then do;
dcl hash h(ordered:'y');
h.definekey("city");
h.definedata("city","f","m");
h.definedone();
end;
set b end = eof;
if h.find() = 0 then do;
if sa = 'f' then f + lo;
else if sa = 'm' then m + lo;
h.replace();
end;else do;
m = 0;
f = 0;
if sa = 'f' then f = lo;
else if sa = 'm' then m = lo;
h.add();
end;
if eof then h.output(dataset:"c");
run;